Как узнать, столкнется ли что-то с чем-то в Unity (2D)

Я пытаюсь сделать 2D-игру в Unity, и мне было любопытно, есть ли способ проверить, будет ли столкновение между двумя объектами, а не говорить мне, КОГДА они действительно сталкиваются.

Например, я делаю игру Space Invaders и хочу проверить, не столкнется ли какой-либо из космических захватчиков на краях с краем, прежде чем они действительно переместятся в сценарии C#. Я кодировал в Game Maker Studio и помню, что эта функция была доступна, но мне трудно выяснить, возможно ли это в Unity. Возможно ли это в Unity?

Спасибо за помощь.


person JoeyL    schedule 25.11.2014    source источник


Ответы (1)


да, это возможно, вам нужно будет выполнить какое-то raycasting в направлении движения игрового объекта, вы можете проверить Эта ссылка для Physics.Raycast, чтобы узнать, как делать то, что вам нравится.

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    void Update() {
        Vector3 fwd = transform.TransformDirection(Vector3.forward);
        if (Physics.Raycast(transform.position, fwd, 10))
            print("There is something in front of the object!");

    }
}
person JRowan    schedule 25.11.2014