【问题标题】:Unity3D how to check Collision with Objects tagged "tag"Unity3D如何检查与标记为“标签”的对象的碰撞
【发布时间】: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

标签: c# unity3d


【解决方案1】:

Physics.CheckSphere 函数还有第三个参数,称为layerMask。您可以指定它以选择性地忽略碰撞器。

【讨论】:

    猜你喜欢
    • 2021-11-28
    • 2020-04-04
    • 2022-08-20
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 2019-08-09
    • 2013-02-20
    相关资源
    最近更新 更多