未检测到Unity冲突

时间:2016-04-01 09:57:10

标签: unity3d

我正在学习创造一个简单的fps游戏,问题是碰撞不会自我更新,例如最初当我的玩家在地面控制台上打印" floor" by" Debug.log(collision.gameObject)"但当它与其他对象相交时,如立方体控制台将打印出" cube"但当我离开它时,控制台不会改回"地板"为什么????

我正在使用transform.translate移动和跳转并使用方法OnCollisionEnter进行碰撞检测

3 个答案:

答案 0 :(得分:2)

仅当对象进入对撞机时才会触发

OnCollisionEnter

A)在OnCollisionEnter发生时添加所有遇到的对象并在OnCollisionExit发生时删除,列出所有遇到的对象。然后,只要你需要确保你在“楼层”,请在列表中查看它。

B)使用OnCollisionStay,如果您触摸“地板”,将通知您每一帧。

答案 1 :(得分:1)

记住一件事,你要碰撞的另一个物体需要将对撞机组件设置为对齐,确保它。加上前面的答案。

答案 2 :(得分:0)

我建议验证碰撞。 这是一个简单的例子:

void OnCollisionEnter (Collision col){
        if (col.gameObject){
            Debug.Log("Object name : "+ col.gameObject.name);
        }
    }