我正在做一个游戏,我添加了一个在x轴上不断旋转的聚光灯,我希望当光线照射到玩家时,光线能够检测到我的玩家我试过光线投射,但它只是一条线,所以没有准确性
8xiog9wr1#
可以使用圆锥体网格
MeshCollider
private void OnTriggerEnter(Collider other) { if(other.TryGetComponent<Player>(out var player) { Debug.Log("Hey {player}, I see you!"); } }
这将是你的预过滤器检查是否需要任何进一步的工作在所有-如果没有球员在所有在这个触发器,那么没有什么进一步检查无论如何。然后进一步的检查可以例如还包括检查是否存在多个命中对象,如果只有玩家在那里,则也没有其他事情要做,因为你知道你已经看到了玩家。如果墙对象比玩家更近,则如果你可能看到玩家的任何边缘,则你可以进行进一步的光线投射检查等例如,对于玩家,在玩家的每个边缘进行光线投射,并检查其中一个是否击中了玩家而不是墙壁
1条答案
按热度按时间8xiog9wr1#
可以使用圆锥体网格
MeshCollider
触发器中的网格,而不使用任何网格渲染器这将是你的预过滤器检查是否需要任何进一步的工作在所有-如果没有球员在所有在这个触发器,那么没有什么进一步检查无论如何。
然后进一步的检查可以例如还包括检查是否存在多个命中对象,如果只有玩家在那里,则也没有其他事情要做,因为你知道你已经看到了玩家。如果墙对象比玩家更近,则如果你可能看到玩家的任何边缘,则你可以进行进一步的光线投射检查等
例如,对于玩家,在玩家的每个边缘进行光线投射,并检查其中一个是否击中了玩家而不是墙壁