OnCollisionEnter未与2D碰撞器统一调用

OnCollisionEnter is not called in unity with 2D colliders(OnCollisionEnter未与2D碰撞器统一调用)
本文介绍了OnCollisionEnter未与2D碰撞器统一调用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我几乎检查了这个问题的每一个答案,但大多数都是简单的错误和错误。 我的问题是,即使与其他刚体发生冲突,也不会调用OnCollisionEnter。

这里是未调用的部分:

 void OnCollisionEnter(UnityEngine.Collision col) {
        Debug.Log("collision!!!");
        foreach(ContactPoint contact in col.contacts) {
            //checking the individual collisions
            if(contact.Equals(this.target))
            {
                if(!attacking) {
                    Debug.Log("hitting target");
                } else {
                    Debug.Log("dying");
                    //engage death sequence
                }
            }
        }
    }

甚至没有"碰撞!"此时将显示一条消息。我是理解错了用法,还是忘了什么?

推荐答案

您是否在使用2D碰撞器和刚体?如果是,请使用此函数而不是OnCollisionEnter

void OnCollisionEnter2D(Collision2D coll)
    {
        Debug.Log(coll.gameObject.tag);

    }

这篇关于OnCollisionEnter未与2D碰撞器统一调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)