unity 2D 中的 OnCollisionEnter2D 问题

问题描述 投票:0回答:1

我正在用 C# 在 Unity 2D 中开发俄罗斯方块游戏。我想检测精灵和四边形之间的碰撞作为墙壁,但我的 OnCollisionEnter2D 函数不起作用。

我将精灵放入游戏对象类型的数组中。我的精灵和四边形(墙)上都有 Rigidbody2D 和 BoxCollider 2D。 我的四边形(墙壁)标签是“障碍”。谁能帮我?我将不胜感激任何与我的代码相关的帮助。

这是我的 CollisionEnter2D 代码:

public void CollisionEnter2D(Collision2D coll){
        if (coll.gameObject.tag == "obstacle") {
            Debug.Log ("Hit");
        }
c# collision-detection unity-game-engine unity3d-2dtools
1个回答
1
投票

查看检查器上的 Rigid body 2d 是否设置为 kinematic 而不是 dynamic,并且您的盒子碰撞器已选中 'is trigger'。看看这是否有效,我还使用预制件来生成障碍物,当我尝试将生成器放在屏幕上并从场景中删除预制件时,未检测到碰撞,但当我将其重新添加到屏幕上时,它起作用了。我不太确定为什么,但看看上述解决方案是否有效。

也改变

public void CollisionEnter2D(Collision2D coll)

void OnTriggerEnter2D(Collider2D coll)
© www.soinside.com 2019 - 2024. All rights reserved.