Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Все Вопросы Мои Вопросы

RigedBody координаты

UnityC#3D

Проблема в том что мне нужно заморозить только позицию Y, но при этом почему то размораживаются повороты. Если добавить строчку с повторной заморозкой поворотов, то не будет замораживаться позиция Y.
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Ladder"))
{
onGraund = false;
isHit = true;

_playerRigidbody.constraints = RigidbodyConstraints.FreezePositionY;

}
}

private void OnTriggerExit(Collider other)
{
if (other.CompareTag("Ladder"))
{
isHit = false;
_playerRigidbody.useGravity = true;
_playerRigidbody.constraints = RigidbodyConstraints.None;
_playerRigidbody.constraints = RigidbodyConstraints.FreezeRotation;
}
}


Комментарии

2
NoNameNS 1 год назад

Все просто, когда у тебя выполняется код ты как бы говоришь ограничениям, что теперь будут ограничения только для изменения позиции по оси Y (т.е ты полностью их перезаписываешь, а не добавляешь).

 _playerRigidbody.constraints = RigidbodyConstraints.FreezePositionY;

Если же надо сочетание заморозки вращения по осям и позиции по оси Y, то используй |
_playerRigidbody.constraints = RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

NoNameNS 1 год назад

Подробнее можно почитать тут если есть знания английского. https://docs.unity3d.com/ScriptReference/Rigidbody.html

Гости не могут отвечать на вопросы. Войдите на Сайт или Зарегистрируйтесь