C# 是否可以使光线投射仅检测对象的侧面?

C# 是否可以使光线投射仅检测对象的侧面?,c#,algorithm,unity3d,C#,Algorithm,Unity3d,我试图在Unity2d中创建一种“声音光线投射器”,但我发现了一个问题,即光线一旦进入对象内部,我就无法检测对象的端点。如果光线投射在对象内部开始,它将立即结束,这不是我希望发生的。有没有办法让光线投射仅检测对象的开始/结束?欢迎任何其他解决我问题的方法 您可以使用光线投射方向并向前继续一段距离,然后向相反方向进行光线投射。如果你击中同一物体,你就知道物体的终点。否则,请增加距离,然后重试 世界上有很多光线,这不是很慢吗?此外,如何确保光线仅与一个对象碰撞(以防另一个对象挡住了视线)?当然,您必

我试图在Unity2d中创建一种“声音光线投射器”,但我发现了一个问题,即光线一旦进入对象内部,我就无法检测对象的端点。如果光线投射在对象内部开始,它将立即结束,这不是我希望发生的。有没有办法让光线投射仅检测对象的开始/结束?欢迎任何其他解决我问题的方法

您可以使用光线投射方向并向前继续一段距离,然后向相反方向进行光线投射。如果你击中同一物体,你就知道物体的终点。否则,请增加距离,然后重试

世界上有很多光线,这不是很慢吗?此外,如何确保光线仅与一个对象碰撞(以防另一个对象挡住了视线)?当然,您必须考虑如何最小化光线投射的数量。也许你可以把相关的对象放在一个单独的图层里?此外,还需要为相反的光线投射提供一个良好的起点。如果你撞到另一个物体,也许你最好从远处开始,靠近一点?还是从小处开始,因为你有很多东西?或者你可以使用。你必须评估每一次击中,并检查你是否击中同一物体。如果没有:就把这个位置作为一个新的起点,再投一次。我想我可以做到。。还有炸圈饼在中间有一个空的空间(像炸圈饼),相反的光线只会检测物体的末端而不是甜甜圈里面的点。这应该是一个边缘的情况,虽然,我会尝试实施您的解决方案!你不能简单地使用对撞机的边界吗?它适用于简单网格。或者,您可以在网格的端点上触发碰撞器,并且仅对这些端点进行光线投射?