Unity3D如何检查与标记为“标签”的对象的碰撞
Posted
技术标签:
【中文标题】Unity3D如何检查与标记为“标签”的对象的碰撞【英文标题】:Unity3D how to check Collision with Objects tagged "tag" 【发布时间】:2022-01-21 01:38:27 【问题描述】:目前,我正在使用 Random GameObject Spawner 编写游戏。我要解决的问题是我使用Physics.Checksphere
来实例化对象,只有当我想要的半径周围的这个点没有对象时。
这是我的实现代码:
if(!Physics.CheckSphere(pos, spawnCollisionCheckRadius)) //Check Radius at pos
GameObject actStone = stones[Random.Range(0, stones.Count)]; //Get Random Stone Object from List
Instantiate(actStone, pos, rot); //Spawn Stone
所以我实际遇到的问题是,当我有一个球体对撞机时,我的 Physics.CheckSphere
代码不起作用,因为它会检查石头周围这个球体中的任何碰撞,并且每次它与我的星球发生碰撞时。但我需要一个环绕我的星球的对撞机。我怎样才能只为我检查带有“石头”标签的碰撞,而不是这个半径中的所有碰撞。我的想法可能是以某种方式使用Physics.OverlapSphere
,但我实际上不知道如何实现它。感谢您的帮助,我希望将来我也可以帮助解决这个问题!
【问题讨论】:
函数中有一个 layerMask 参数。您可以使用图层来忽略某些碰撞。检查docs 【参考方案1】:Physics.CheckSphere 函数还有第三个参数,称为layerMask
。您可以指定它以选择性地忽略碰撞器。
【讨论】:
以上是关于Unity3D如何检查与标记为“标签”的对象的碰撞的主要内容,如果未能解决你的问题,请参考以下文章