Skip to content

Commit 050a05c

Browse files
committed
NeoxiderTools v6.0.5
1 parent a8a75c2 commit 050a05c

92 files changed

Lines changed: 18804 additions & 431 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Assets/Neoxider/CHANGELOG.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,50 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [6.0.5] - Unreleased
6+
7+
### Tools / Move — недоработки и улучшения модуля
8+
9+
- **UniversalRotator**`using UnityEditor` обёрнут в `#if UNITY_EDITOR` (исправление для билдов).
10+
- **ScreenPositioner** — проверка `_targetCamera == null` в ApplyScreenPosition с логом; режим «use screen position» использует `_screenEdge` вместо жёсткого BottomLeft; опция `_updateEveryFrame` и обновление в LateUpdate для динамического размещения; поля унифицированы в `[SerializeField] private`.
11+
- **DistanceChecker** — гистерезис (`hysteresisOffset`, пороги approach/depart); настраиваемый `continuousEventThreshold` для onDistanceChanged; метод `SetCurrentObject(Transform)`; пересчёт порогов в Awake/OnValidate/SetDistanceThreshold.
12+
- **Follow** — опциональный автопоиск цели по тегу (`findTargetByTag`, `targetTag`); событие `onTargetLost` при потере цели; тултип для `activationDistance`; публичные геттеры `GetFollowPosition()`, `GetFollowRotation()`.
13+
- **AdvancedForceApplier** — события `OnApplyFailed` (при отсутствии Rigidbody) и `OnApplyForce`; опция `clampSpeedEveryFixedUpdate`; публичные методы `SetTarget(Transform)`, `SetDirectionMode(DirectionMode)`, `SetCustomDirection(Vector3)`.
14+
- **CameraConstraint** — событие `onConstraintFailed` и однократный `Debug.LogWarning` при ошибке инициализации; `SetBoundsSource(Object)` возвращает `bool`.
15+
- **CameraRotationController** — выбор кнопки мыши (`mouseButton`) и опциональный модификатор (`modifierKey`); отдельный множитель `mouseSensitivity`; события `onRotateStart`, `onRotateEnd`.
16+
- **CursorLockController** — режимы курсора: **LockAndHide**, **OnlyHide**, **OnlyLock** (enum `CursorStateMode`); в документации — описание режимов и использование с New Input System (вызов `SetCursorLocked`/`ToggleCursorState` из callback).
17+
- **PlayerController2DPhysics / PlayerController3DPhysics** — события `OnMoveStart`, `OnMoveStop` при начале/окончании движения; при `_groundCheck == null` в Awake выводится однократный `Debug.LogWarning`; `Teleport` уже присутствовал в обоих.
18+
- **KeyboardMover** — настраиваемые имена осей `horizontalAxis`, `verticalAxis`; опция ввода **Input Backend** (Legacy / New Input System / AutoPreferNew) с использованием `OptionalInputSystemBridge.ReadMove()`.
19+
- **ConstantMover / ConstantRotator** — тултип для `useDeltaTime` (units per second vs per frame); публичные методы `SetSpeed(float)` и `SetDegreesPerSecond(float)`.
20+
- **MouseMover2D / MouseMover3D** — в Awake при отсутствии камеры подставляется `Camera.main`, при отсутствии — однократный `Debug.LogWarning`; настраиваемые `mouseButton` и `arrivalThreshold`; **MouseMover3D** реализует интерфейс `IMover` (`MoveDelta(Vector2)`, `MoveToPoint(Vector2)` с проекцией на плоскость); в `RaycastCursor` проверка `cam == null`.
21+
- Документация обновлена: CursorLockController.md, KeyboardMover.md, MouseMover3D.md, ConstantMover.md, IMover.md, PlayerController2DPhysics.md, PlayerController3DPhysics.md, README Move.
22+
23+
### Tools / Components — исправления и устойчивость
24+
25+
- **ScoreManager** — исправлена логика `SetBestScore(int?)`: без аргумента обновляет рекорд из текущего счёта, с аргументом — заданное значение (если больше текущего рекорда). Убран лишний вызов `OnValueChange` в `ResetScore()` (сеттер Score уже вызывает событие).
26+
- **Counter** — в `SaveValue()` после `SetFloat` вызывается `SaveProvider.Save()` (соответствие документации и поведению Money).
27+
- **Loot** — проверка `lootItems == null || lootItems.Length == 0` в `DropLoot()` и `GetRandomPrefab()` (защита от NullReferenceException). Namespace приведён к `Neo.Tools`.
28+
- **TextScore** — в `Init()` перед подпиской вызывается `RemoveListener(Set)` для исключения двойной подписки при повторной инициализации.
29+
- **Health** — в XML-документации класса указана реализация IDamageable, IHealable, IRestorable для интеграции с AttackExecution.
30+
- Документация: ScoreManager.md (описание SetBestScore), SCRIPT_IMPROVEMENTS.md — актуализирован (выполненные пункты отмечены).
31+
32+
## [6.0.4] - Unreleased
33+
34+
### Tools / Random — универсальный No-Code и API
35+
36+
- **ChanceSystemBehaviour** — расширены события для настройки и подписки без кода:
37+
- **On Index And Weight Selected (int, float)** — выбранный индекс и нормализованная вероятность (0..1).
38+
- **On Roll Complete** — вызывается один раз после каждого броска (UI, звук).
39+
- **Events By Index** — список UnityEvent по исходам: при выпадении индекса N вызывается событие на позиции N (разные действия на каждый исход без кода).
40+
- **LastSelectedIndex**, **LastSelectedEntry** — результат последнего броска.
41+
- **EvaluateAndNotify()** — бросок с вызовом всех событий, возврат Entry.
42+
- **SetResultAndNotify(int)** — задать результат по индексу и вызвать события.
43+
- **GetNormalizedWeight(int)**, **GetOrAddEventForIndex(int)** — для кода.
44+
- Обратная совместимость: **OnIdGenerated** и **OnIndexSelected** сохранены.
45+
- **ChanceManager****TryEvaluate(out int index, out Entry entry)** и **TryEvaluate(float randomValue, out int index, out Entry entry)** для удобного доступа к индексу и записи одним вызовом (в т.ч. детерминированный бросок).
46+
- **ChanceData** — в документации указано использовать ChanceSystemBehaviour для сценарных событий по индексу.
47+
- Документация: ChanceSystemBehaviour.md, ChanceManager.md, README Random обновлены.
48+
549
## [6.0.3] - Unreleased
650

751
### UI: SceneFlowController и реестр устаревших
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
# Модуль "Колесо Фортуны" (WheelFortune)
1+
# Модуль "Колесо Фортуны" (WheelFortune)
22

3-
Этот модуль предоставляет систему для реализации игровой механики "Колесо Фортуны".
3+
Система для реализации игровой механики "Колесо Фортуны".
44

55
## Оглавление
6-
- [**WheelFortune**](./WheelFortune.md): Основной класс, управляющий логикой вращения и определения приза.
7-
- [**WheelMoneyWin**](./WheelMoneyWin.md): Вспомогательный класс для отображения выигрыша на колесе.
6+
- [**WheelFortuneImproved**](./WheelFortuneImproved.md): Рекомендуемый компонент — рулетка с шансами, событиями и SpinToResult.
7+
- [**WheelFortune**](./WheelFortune.md): Устаревший компонент (обратная совместимость).
8+
- [**WheelMoneyWin**](./WheelMoneyWin.md): Обработчик выигрыша (подключается к OnWinIdVariant любого из компонентов рулетки).

Assets/Neoxider/Docs/Bonus/WheelFortune/WheelFortune.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
### Класс WheelFortune
1+
### Класс WheelFortune (устаревший)
2+
3+
**Рекомендуется использовать [WheelFortuneImproved](./WheelFortuneImproved.md)** для новых настроек. Текущий тип сохранён для обратной совместимости; существующие префабы и сцены продолжают работать.
4+
25
- **Пространство имен**: `Neo.Bonus`
36
- **Путь к файлу**: `Assets/Neoxider/Scripts/Bonus/WheelFortune/WheelFortune.cs`
47

0 commit comments

Comments
 (0)