MotionBehaviour
- class Varwin.MotionBehaviour
Базовые классы:
object- class LockRotationRules
Базовые классы:
object- Lock: Any = Ellipsis
- OnlyHorizontal: Any = Ellipsis
- AllowAll: Any = Ellipsis
- TeleportTo(target: Object) None
Мгновенно перемещает указанный объект по координатам второго объекта.
- Параметры:
(Object) (target) – объект сцены
Пример:
instance.MotionBehaviour.TeleportTo(sceneObject1)
- SetPosition(targetPosition: Vector3) None
Мгновенно перемещает указанный объект в позицию, заданную с помощью координат в мировом пространстве.
Пример:
instance.MotionBehaviour.SetPosition(Varwin.Vector3(1,0,0))
- MoveByAxisWithSpeed(axis: Vector3, speed: float) None
Запускает процесс перемещения указанного объекта в направлении выбранной оси с заданной скоростью. Перемещение продолжается, пока оно не будет остановлено блоком завершения перемещения. Чтобы изменить направление перемещения, используйте отрицательные значение скорости.
Пример:
instance.MotionBehaviour.MoveByAxisWithSpeed(Varwin.Vector3(1,0,0), 0)
- async MoveByAxisAtDistance(axis: Vector3, distance: float, speed: float) None
Запускает процесс перемещения указанного объекта в направлении выбранной оси на заданное расстояние с заданной скоростью. Перемещение продолжается, пока объект не преодолеет расстояние. Чтобы изменить направление перемещения, используйте отрицательные значение скорости.
Пример:
await instance.MotionBehaviour.MoveByAxisAtDistance(Varwin.Vector3(1,0,0), 0, 0)
- async MoveByAxisOverTime(axis: Vector3, duration: float, speed: float) None
Запускает процесс перемещения указанного объекта в направлении выбранной оси в течение указанного времени с заданной скоростью. Перемещение продолжается, пока не истечет время. Чтобы изменить направление перемещения, используйте отрицательные значение скорости.
Пример:
await instance.MotionBehaviour.MoveByAxisOverTime(Varwin.Vector3(1,0,0), 0, 0)
- async MoveToObjectAtSpeed(target: Object, speed: float) None
Запускает процесс перемещения указанного объекта в направлении второго объекта с заданной скоростью. Перемещение продолжается, пока указанный объект не достигнет второго объекта.
- Параметры:
(Object) (target) – объект сцены
Пример:
await instance.MotionBehaviour.MoveToObjectAtSpeed(sceneObject1, 0)
- async MoveToCoordinatesAtSpeed(target: Vector3, speed: float) None
Запускает процесс перемещения указанного объекта в направлении указанных координат с заданной скоростью. Перемещение продолжается, пока объект не достигнет координат.
Пример:
await instance.MotionBehaviour.MoveToCoordinatesAtSpeed(Varwin.Vector3(1,0,0), 0)
- async MoveAlongThePath(path: List[Object | Vector3], speed: float) None
Запускает процесс перемещения указанного объекта по маршруту с указанной скоростью. Маршрут представляет собой список объектов или координат в мировом пространстве, заданных векторами.
Пример:
await instance.MotionBehaviour.MoveAlongThePath("test", 0)
- Stop() None
Управляет любым перемещением. Приостановленное движение можно возобновить блоком “Продолжить”.
Пример:
instance.MotionBehaviour.Stop()
- Pause() None
Управляет любым перемещением. Приостановленное движение можно возобновить блоком “Продолжить”.
Пример:
instance.MotionBehaviour.Pause()
- Continue() None
Управляет любым перемещением. Приостановленное движение можно возобновить блоком “Продолжить”.
Пример:
instance.MotionBehaviour.Continue()
- IsMovingNow() bool
Возвращает “истину”, если указанный объект перемещается в данный момент. В противном случае возвращает “ложь”.
Пример:
result = instance.MotionBehaviour.IsMovingNow()
- GetDistanceToObject(target: Object) float
Возвращает расстояние по прямой от указанного объекта до второго объекта. Расстояние возвращается в метрах в виде вещественного числа.
- Параметры:
(Object) (target) – объект сцены
Пример:
result = instance.MotionBehaviour.GetDistanceToObject(sceneObject1)
- GetDistanceToVector(target: Vector3) float
Возвращает расстояние по прямой от указанного объекта до мировых координат, указанных с помощью вектора. Расстояние возвращается в метрах в виде вещественного числа.
Пример:
result = instance.MotionBehaviour.GetDistanceToVector(Varwin.Vector3(1,0,0))
- property Position: Vector3
Возвращает позицию указанного объекта в мировых координатах в виде вектора [x; y; z]
Пример:
result = instance.MotionBehaviour.Position
- property PositionX: float
Возвращает позицию указанного объекта по выбранной оси в мировых координатах.
Пример:
result = instance.MotionBehaviour.PositionX
- property PositionY: float
Возвращает позицию указанного объекта по выбранной оси в мировых координатах.
Пример:
result = instance.MotionBehaviour.PositionY
- property PositionZ: float
Возвращает позицию указанного объекта по выбранной оси в мировых координатах.
Пример:
result = instance.MotionBehaviour.PositionZ
- property MovementFaceDirection: Vector3
Задает сторону объекта, которой он будет направлен в сторону перемещения. Значение для настройки перемещения объекта “вперёд лицом”: (x: 0; y: 0; z: 1)
Пример:
result = instance.MotionBehaviour.MovementFaceDirection
- property MinimumTargetStopDistance: float
Задает минимальное расстояние между заданным и целевым объектами, чтобы движение к нему считалось завершенным. Вычисляется расстояние между центрами объектов, поэтому использование значения 0 не рекомендуется.
Пример:
result = instance.MotionBehaviour.MinimumTargetStopDistance
- AddMovementFinishedHandler(handler: Callable[[Object], CoroutineType]) None
Событие срабатывает, когда указанный объект завершает любое перемещение. Перемещение считается завершенным, если объект достиг целевой позиции, или если перемещение было остановлено соответствующим блоком. В параметр передается объект, для которого сработало событие.
- Параметры:
handler –
Асинхронная функция-обработчик с сигнатурой:
sender (Object): объект, который вызвал событие
Пример:
async def OnMovementFinished(sender): ... instance.MotionBehaviour.AddMovementFinishedHandler(OnMovementFinished)
- AddToWrapperMovementFinishedHandler(handler: Callable[[Object, Object], CoroutineType]) None
Событие срабатывает, когда указанный объект завершает перемещение к целевому объекту. В параметры передается объект, у которого сработало событие (перемещающийся объект), а также объект, к которому было завершено перемещение (целевой объект).
- Параметры:
handler –
Асинхронная функция-обработчик с сигнатурой:
target (Object): целевой объект
sender (Object): объект, который вызвал событие
Пример:
async def OnToWrapperMovementFinished(target, sender): ... instance.MotionBehaviour.AddToWrapperMovementFinishedHandler(OnToWrapperMovementFinished)
- AddToVectorMovementFinishedHandler(handler: Callable[[Vector3, Object], CoroutineType]) None
Событие срабатывает, когда указанный объект завершает перемещение к целевым координатам. В параметры передается объект, у которого сработало событие (перемещающийся объект), а также координаты, в виде вектора, к которым было завершено перемещение (целевые координаты).
- Параметры:
handler –
Асинхронная функция-обработчик с сигнатурой:
target (Vector3): целевые координаты
sender (Object): объект, который вызвал событие
Пример:
async def OnToVectorMovementFinished(target, sender): ... instance.MotionBehaviour.AddToVectorMovementFinishedHandler(OnToVectorMovementFinished)
- AddWaypointReachedHandler(handler: Callable[[int, Any, Object], CoroutineType]) None
Событие срабатывает, когда указанный объект, двигающийся по маршруту, достигает очередную точки маршрута. В параметры передается объект, у которого сработало событие, номер точки в маршруте, а также достигнутая точка.
- Параметры:
handler –
Асинхронная функция-обработчик с сигнатурой:
wayPointIndex (int): номер точки в маршруте
waypoint (Any): достигнутая точка
sender (Object): объект, который вызвал событие
Пример:
async def OnWaypointReached(wayPointIndex, waypoint, sender): ... instance.MotionBehaviour.AddWaypointReachedHandler(OnWaypointReached)