KinematicCollision3D
Результат проверенного движения тела 3D.
KinematicCollision3D содержит данные контакта: collider, нормаль, пройденный путь и остаток. После MoveAndCollide сначала проверьте результат на null. После MoveAndSlide берите результаты через GetSlideCollisionCount/GetSlideCollision.
GetTravel и GetRemainder не взаимозаменяемы: остаток нужен для продолжения ещё не выполненного движения. Не прикладывайте исходное перемещение повторно. При последующей отложенной обработке проверяйте существование collider; контакт не удерживает игровой объект от удаления.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
KinematicCollision3DКонструктор
public KinematicCollision3D();Методы14
GetAnglefloat
public float GetAngle(int collisionIndex = 0, Vector3? upDirection = default);Возвращает угол столкновения в соответствии с up_direction, который по умолчанию равен Vector3.Up. Это значение всегда положительно.
| Имя | Тип | По умолчанию |
|---|---|---|
collisionIndex | int | 0 |
upDirection | Vector3? | default |
upDirectionЕсли параметр не имеет значения, то значение по умолчанию: new Vector3(0.0f, 1.0f, 0.0f).
floatGetColliderReckfellObject
public ReckfellObject GetCollider(int collisionIndex = 0);Возвращает прикрепленный к сталкивающемуся телу ReckfellObject с учетом индекса столкновения (по умолчанию — самое глубокое столкновение).
| Имя | Тип | По умолчанию |
|---|---|---|
collisionIndex | int | 0 |
ReckfellObjectGetColliderIdulong
public ulong GetColliderId(int collisionIndex = 0);Возвращает уникальный идентификатор экземпляра ReckfellObject, прикрепленного к сталкивающемуся телу, с учетом индекса столкновения (по умолчанию — самое глубокое столкновение). См. ReckfellObject.GetInstanceId.
| Имя | Тип | По умолчанию |
|---|---|---|
collisionIndex | int | 0 |
ulongGetColliderRidRid
public Rid GetColliderRid(int collisionIndex = 0);Возвращает Rid сталкивающегося тела, используемый PhysicsServer3D, с учетом индекса столкновения (по умолчанию — самое глубокое столкновение).
| Имя | Тип | По умолчанию |
|---|---|---|
collisionIndex | int | 0 |
RidGetColliderShapeReckfellObject
public ReckfellObject GetColliderShape(int collisionIndex = 0);Возвращает форму сталкивающегося тела с учетом индекса столкновения (по умолчанию — самое глубокое столкновение).
| Имя | Тип | По умолчанию |
|---|---|---|
collisionIndex | int | 0 |
ReckfellObjectGetColliderShapeIndexint
public int GetColliderShapeIndex(int collisionIndex = 0);Возвращает индекс формы сталкивающегося тела, заданный индексом столкновения (по умолчанию — самое глубокое столкновение). См. CollisionObject3D.
| Имя | Тип | По умолчанию |
|---|---|---|
collisionIndex | int | 0 |
intGetColliderVelocityVector3
public Vector3 GetColliderVelocity(int collisionIndex = 0);Возвращает скорость сталкивающегося тела по индексу столкновения (по умолчанию — самое глубокое столкновение).
| Имя | Тип | По умолчанию |
|---|---|---|
collisionIndex | int | 0 |
Vector3GetCollisionCountint
public int GetCollisionCount();Возвращает количество обнаруженных столкновений.
intGetDepthfloat
public float GetDepth();Возвращает длину перекрытия сталкивающегося тела вдоль нормали столкновения.
floatGetLocalShapeReckfellObject
public ReckfellObject GetLocalShape(int collisionIndex = 0);Возвращает форму столкновения движущегося объекта с учетом индекса столкновения (по умолчанию — самое глубокое столкновение).
| Имя | Тип | По умолчанию |
|---|---|---|
collisionIndex | int | 0 |
ReckfellObjectGetNormalVector3
public Vector3 GetNormal(int collisionIndex = 0);Возвращает нормаль формы сталкивающегося тела в точке столкновения с учетом индекса столкновения (по умолчанию — самое глубокое столкновение).
| Имя | Тип | По умолчанию |
|---|---|---|
collisionIndex | int | 0 |
Vector3GetPositionVector3
public Vector3 GetPosition(int collisionIndex = 0);Возвращает точку столкновения в глобальных координатах с учетом индекса столкновения (по умолчанию — самое глубокое столкновение).
| Имя | Тип | По умолчанию |
|---|---|---|
collisionIndex | int | 0 |
Vector3GetRemainderVector3
public Vector3 GetRemainder();Остаток заданного перемещения после контакта. При отражении преобразуйте и скорость, и этот остаток; повтор исходного отрезка увеличил бы пройденный путь.
Vector3GetTravelVector3
public Vector3 GetTravel();Возвращает путь движущегося объекта до столкновения.
Vector3