【问题标题】:Issues with OnCollisionEnter2D in unity 2DUnity 2D 中 OnCollisionEnter2D 的问题
【发布时间】:2017-01-24 17:13:14
【问题描述】:

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

我把我的精灵放在一个 Gameobject 类型的数组中。我的精灵和 Quad(Wall) 上都有 Rigidbody2D 和 BoxCollider 2D。 我的 Quad 的(墙)标签是“障碍物”。谁能帮我?我将不胜感激与我的代码相关的任何帮助。

这是我的 CollisionEnter2D 代码:

public void CollisionEnter2D(Collision2D coll){
        if (coll.gameObject.tag == "obstacle") {
            Debug.Log ("Hit");
        }

【问题讨论】:

  • 你把对撞机做成触发器了吗?
  • 哪一个对撞机?
  • 我需要停止我的游戏对象 oncollision 并且不让它通过 Quad(Wall)
  • 而且我还希望我的下一个游戏对象在数组中的下一个游戏对象与墙壁碰撞时立即开始运动@StevenWestbrook

标签: c# collision-detection unity5 unity3d-2dtools


【解决方案1】:

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

也改变

public void CollisionEnter2D(Collision2D coll)

void OnTriggerEnter2D(Collider2D other)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多