我正在尝试在 Unity 中制作 2D 游戏,我很好奇是否有办法检查 2 个对象之间是否会发生碰撞,而不是告诉我它们何时实际发生碰撞。
例如 - 我正在制作一个 Space Invaders 游戏,我想在 C# 脚本中实际移动之前检查边缘上的任何一个 Space Invaders 是否会与边缘发生碰撞。我在 Game Maker Studio 中编码,我记得该功能可用,但我很难确定它在 Unity 中是否可行。这在 Unity 中可行吗?
谢谢您的帮助。
我正在尝试在 Unity 中制作 2D 游戏,我很好奇是否有办法检查 2 个对象之间是否会发生碰撞,而不是告诉我它们何时实际发生碰撞。
例如 - 我正在制作一个 Space Invaders 游戏,我想在 C# 脚本中实际移动之前检查边缘上的任何一个 Space Invaders 是否会与边缘发生碰撞。我在 Game Maker Studio 中编码,我记得该功能可用,但我很难确定它在 Unity 中是否可行。这在 Unity 中可行吗?
谢谢您的帮助。
是的,有可能,您必须在游戏对象移动的方向上进行某种光线投射,您可以查看This Link for 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!");
}
}