У меня есть персонаж (перемещается с помощью клавиш клавиатуры). У меня есть несколько стен в моем доме.
Дело в том, что я хотел обнаруживать столкновения, когда я 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);
}
}
}