TransWikia.com

Не работает Raycast

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);
    }
}

Скриншот сцены и консоли в Unity

One Answer

Я так думаю, что проблема заключается в том, что на ваш кубик не навешен Box Collider, из-за этого raycast просто не видит кубик.

Answered by Алексей Бобрович on August 10, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP