Задача состоит в том, что:Единство: камера падает через рельеф
Я создал местность, и мне нужно пролететь через территорию с помощью камеры. Я добавил к камере «Mouse Look» сценарий, Rigidbody: usegravity - непроверенный и я добавил свой код в методе Update:
float vert = Input.GetAxis("Vertical");
float hor = Input.GetAxis("Horizontal");
if (vert != 0)
{
if (!Physics.Raycast(this.transform.position, this.transform.forward, 5))
{
transform.Translate(Vector3.forward * flySpeed * vert);
}
else
{
transform.Translate(Vector3.up * flySpeed * vert);
}
}
if (hor != 0)
{
if (!Physics.Raycast(this.transform.position, this.transform.forward, 5))
{
transform.Translate(Vector3.right * flySpeed * hor);
}
else
{
transform.Translate(Vector3.up * flySpeed* hor);
}
}
if (Input.GetKey(KeyCode.E))
{
transform.Translate(Vector3.up * flySpeed);
}
else if (Input.GetKey(KeyCode.Q))
{
Vector3 v = Vector3.down * flySpeed;
if (!Physics.Raycast(this.transform.position, this.transform.forward, 5))
{
transform.Translate(v);
}
}
Но иногда, то я иду вниз - Q - камера проходит через местность. Зачем? Также выглядит уродливым, если вы двигаетесь с камерой вперед настолько низко, насколько возможно на местности, и камера не проваливается через нее - она начинает прыгать. И почему?
yep, добавлено ... – GhostBob