首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >三维对撞机的Collider.isTouching

三维对撞机的Collider.isTouching
EN

Stack Overflow用户
提问于 2018-11-23 21:15:09
回答 2查看 7K关注 0票数 2
代码语言:javascript
复制
if (colliderBox.isTouching (col) && col.CompareTag("barrier")) {
        score++;
        this.GetComponent<Renderer> ().material.color = col.GetComponent<Renderer> ().material.color;
    }

    if (spriteBox.IsTouching(col) && col.CompareTag("barrier") ) {
        Debug.Log (col);
        Debug.Log (colliderBox);
        SceneManager.LoadScene (mainMenu);
    }

目前,在我的代码中,我使用一个onTriggerEnter来检测与一个名为“屏障”的对象的碰撞,但是我不得不用3D对象替换我的2d spriteBox和2d colliderBox,而现在isTouching不再是3D对撞机的属性。我找不到简单的替代品。我能用什么替换它们呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-23 22:02:09

对于3D碰撞,没有isTouching函数的等效版本,但您可以自己滚动。当OnTriggerEnter时,存储包含在集合中的两个对撞机。当调用OnTriggerExit时,检查所涉及的两个对撞机,如果已经退出集合,则将它们从集合中删除。这就是我在this post中使用CollisionDetection脚本所做的工作。

CollisionDetection脚本附加到将发生冲突的对象。

若要检查Collider是否正在接触另一个Collider,请更改:

代码语言:javascript
复制
if (colliderBox.isTouching (col) && col.CompareTag("barrier")) { }

至:

代码语言:javascript
复制
if (CollisionDetection.IsTouching (colliderBox.gameObject, col.gameObject) && col.CompareTag("barrier")) {  }

还可以为ExtensionMethod类添加CollisionDetection:

代码语言:javascript
复制
public static class ExtensionMethod
{
    public static bool IsTouching(this Collider collider, Collider otherCollider)
    {
        return CollisionDetection.IsTouching(collider.gameObject, otherCollider.gameObject);
    }

    public static bool IsTouching(this GameObject collider, GameObject otherCollider)
    {
        return CollisionDetection.IsTouching(collider, otherCollider);
    }
}

现在,假设if (colliderBox.isTouching (col) && col.CompareTag("barrier"))ColliderGameObject的一种类型,那么您的Collider代码应该可以不受更改地工作。

票数 3
EN

Stack Overflow用户

发布于 2021-06-05 09:54:55

在与OnTriggerEnter方法中的一个问题进行了长期的斗争之后,我找到了另一种方法

Collider1.bounds.Intersects(对撞机2.界)

虽然有一个特殊的情况,这种方法不能工作,如果collider2是一个空心网格对撞机像一个盒子和collider1在里面,即使他们没有接触它将返回对他们的交集,所以我建议使用简单的对撞机,如盒和球对撞机。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53453014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档