如何确定某些内容是否会与 Unity (2D) 中的某些内容发生冲突

本文关键字:冲突 2D 是否 何确定 Unity | 更新日期: 2023-09-27 18:31:45

我正在尝试在 Unity 中制作 2D 游戏,我很好奇是否有办法检查 2 个对象之间是否会发生碰撞,而不是告诉我它们何时实际碰撞。

例如 - 我正在制作一个太空入侵者游戏,我想检查边缘上的任何一个太空入侵者在实际移动之前是否会与边缘碰撞,然后再在 C# 脚本中实际移动。 我在Game Maker Studio中编码,我记得该功能可用,但我很难确定在Unity中是否可行。 这在 Unity 中可能吗?

感谢您的帮助。

如何确定某些内容是否会与 Unity (2D) 中的某些内容发生冲突

是的,这是可能的,你必须在游戏对象移动的方向上进行某种光线投射,你可以检查这个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!");
    }
}