Path3D
Entity3D-контейнер общего ресурса Curve3D в локальных координатах.
Назначьте Curve3D; Path3D задаёт систему координат и уведомляет об изменениях, но сам по себе не анимирует объект и не строит дорогу/коллизии. Для world-точки closest-запрос выполняется как ToLocal → Curve.GetClosestPoint → ToGlobal. Не передавайте world-координату прямо в локальную кривую.
Curve — общая ссылка. Изменение одного ресурса видят все владельцы; для независимых путей подготовьте отдельные ресурсы. CurveChanged испускается только внутри дерева, в том числе при повторном присваивании той же Curve. DebugCustomColor относится к отладочному отображению, а не финальному материалу.
Проверены shared reference, сигналы и локальное/world-преобразование в Windows headless. Автоматическое движение PathFollow3D, debug-gizmo и финальная графика в этой проверке не выполнялись.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
Path3DКонструктор
public Path3D();Создаёт Entity3D-контейнер пути без Curve. Назначьте ресурс Curve3D; сам Path3D не движется по кривой и не создаёт mesh/collision. Для собственных Entity соблюдайте жизненный цикл дерева; вне дерева освобождайте через Free.
Свойства2
CurveСвойство
public Curve3D Curve { get; set; }Общая Curve3D в локальных координатах Path3D, не копия. Изменения ресурса видны всем владельцам. Setter переподключает Changed и обновляет путь даже при той же ссылке. CurveChanged приходит только внутри EntityTree. null очищает ссылку; не Dispose заимствованный getter-wrapper.
DebugCustomColorСвойство
public Color DebugCustomColor { get; set; }Цвет отладочного отображения пути. Чёрный Color(0,0,0,1) означает цвет из ProjectSettings, а не принудительно чёрный путь. Не задаёт материал финального mesh. Обновление debug material испускает DebugColorChanged; одинаковое присваивание тоже может уведомить.
Методы4
GetCurveCurve3D
public Curve3D GetCurve();Возвращает общую Curve3D либо null; локальные результаты её Sample/Closest не включают transform Path3D. Используйте ToLocal/ToGlobal явно.
Curve3DОбщая Curve3D либо null; wrapper заимствованный.
GetDebugCustomColorColor
public Color GetDebugCustomColor();Читает сохранённый debug-цвет, который может быть чёрным sentinel для ProjectSettings. Не является проверкой видимости debug paths.
ColorСохранённый debug-цвет, включая возможный чёрный sentinel.
SetCurvevoid
public void SetCurve(Curve3D curve);Назначает общую ссылку Curve3D и подписывается на Changed. Не клонирует данные. Вне дерева CurveChanged не приходит; внутри setter уведомляет и при той же ссылке.
| Имя | Тип | По умолчанию |
|---|---|---|
curve | Curve3D | — |
curveОбщая Curve3D или null для очистки; независимую копию готовьте отдельно.
SetDebugCustomColorvoid
public void SetDebugCustomColor(Color debugCustomColor);Меняет debug-цвет и обновляет отладочный материал. Не включает отображение debug paths само по себе и не изменяет Curve3D.
| Имя | Тип | По умолчанию |
|---|---|---|
debugCustomColor | Color | — |
debugCustomColorDebug-цвет; непрозрачный чёрный выбирает ProjectSettings default.
Сигналы и события2
CurveChangedСобытие
public event Action CurveChanged;Событие без аргументов после обновления пути от Curve/setter, только когда Path3D внутри дерева. Это не событие достижения конца и не шаг движения персонажа. Общий ресурс может уведомить несколько Path3D.
DebugColorChangedСобытие
public event Action DebugColorChanged;Событие без аргументов после обновления debug material, включая повторное присваивание того же цвета. Не сообщает о геометрии кривой или готовности финального рендера.