如何检测对撞机并停止向该方向移动?

问题描述 投票:0回答:1

我希望我的立方体能够检测到所有侧面的对撞机并停止朝那个方向移动 如图所示,A和B阻碍了我立方体的路径 我希望达到这样的目标:如果我按下W我希望我的物体保持静止而不移动但是如果我按D它应该向右移动因为那里没有障碍物 我该怎么做呢?我知道如何使用Raycasting检测对象,但我无法计算它们是在我的立方体的前面,后面左侧还是右侧?

unity3d collision
1个回答
0
投票

您可以在所有4个方向进行光线投射。对于“W”,只需要Vector3.ForwardVector3.Up是全球性的。从上面观看场景时,Vector3.forward“向上”。 Vector3.right是自我解释的。

注意:当您同时按“W”和“D”时会发生什么? ;)如果你向右上45°,你可能会有另一个问题。

所以最后我建议你在各个方向做8个光线投射。

对于调试我建议你使用Debug.DrawLine

如果这听起来太复杂,为什么不刮开raycasts并只使用rigidbody + collider?其他colliders需要非触发。这将阻止你的球员没有任何raycasts

© www.soinside.com 2019 - 2024. All rights reserved.