Неправильное действие персонажа после столкновения - PullRequest
1 голос
/ 23 февраля 2020

У меня есть персонаж (перемещается с помощью клавиш клавиатуры). У меня есть несколько стен в моем доме.

Дело в том, что я хотел обнаруживать столкновения, когда я go против стены (чтобы она не проходила go). Все нормально. Но теперь, когда мой персонаж идет против стены, он делает странные вещи, он движется один, как будто он находится в гравитационном режиме (я не знаю, если это понятно).

Итак, мне бы это понравилось, когда я go против стены, персонаж перестает двигаться? Я много чего перепробовал и вроде как потерян, так что если у вас есть идеи, я возьму и попробую! Просто для записи, начал использовать Unity несколько месяцев go, так что в моем скрипте могут быть ошибки (я имею в виду, что он компилируется, но, возможно, он написан не лучшим образом).

Вот мой скрипт:

public class ScriptCharacter : MonoBehaviour
{
private Animator m_animator;
private Rigidbody m_rigidBody;
private void Start()
{
    m_animator = gameObject.GetComponent<Animator>();
    m_animator.SetFloat("Speed", 1);

}

// Update is called once per frame
private void FixedUpdate()
{
    float v = Input.GetAxis("Vertical");
    float h = Input.GetAxis("Horizontal");
    transform.Translate(transform.forward * v * Time.deltaTime, Space.World);
    transform.Rotate(0, h * Time.deltaTime * 30, 0);
    m_animator.SetFloat("Speed", v);
}
void OnCollisionEnter(Collision collision)
{
    Debug.Log("here");
    if (collision.gameObject.name == "Wall")  
    {
        m_rigidBody.velocity = Vector3.zero;
        m_rigidBody.angularVelocity = Vector3.zero;
        m_animator.SetFloat("Speed", 0);
    }
}


}

1 Ответ

1 голос
/ 23 февраля 2020

Как упомянул Честера в комментариях:

Установите для твердого тела значение kinemati c в onCollisionEnter() и установите для него значение Dynami c в onCollisionExit().

Из Unity docs: «Если isKinemati c включен, силы, столкновения или соединения больше не будут влиять на твёрдое тело».

https://docs.unity3d.com/ScriptReference/Rigidbody-isKinematic.html

...