Stack Overflow на русском Asked by Yukio Ito on August 10, 2020
Хотел создать небольшой проект на Unity и для этого нужны мне рэйкасты. При попытке создать их, точнее даже при создании одного, рэйкаст не выдаёт дистанцию при столкновении с объектом, он просто проходит сквозь него, подскажите что делать. Объект в который сталкивается, был вначале обычным спрайтом, потом стал 3D кубом который я растянул по оси Z, чтобы уж точно было, и всё равно значение рэйкаста: 0.
Вот код самого контроллера игрока:
public class PlayerController : MonoBehaviour
{
public float speed = 1.0f;
private float speedX = 0.0f;
private float speedY = 0.0f;
private float health = 20.0f;
Ray2D ray1;
private void Update()
{
ray1 = new Ray2D(transform.position + transform.TransformVector(0f,0.6f,0), transform.up);
Debug.DrawRay(ray1.origin, ray1.direction);
}
private void FixedUpdate()
{
Debug.Log(Physics2D.Raycast(ray1.origin,ray1.direction).distance);
speedX = Input.GetAxisRaw("Horizontal");
speedY = Input.GetAxisRaw("Vertical");
transform.position += transform.up * speed * speedY * Time.deltaTime;
transform.RotateAround(Vector3.forward, -speedX * speed * Time.deltaTime);
}
}
Я так думаю, что проблема заключается в том, что на ваш кубик не навешен Box Collider, из-за этого raycast просто не видит кубик.
Answered by Алексей Бобрович on August 10, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP