我正在学习创造一个简单的fps游戏,问题是碰撞不会自我更新,例如最初当我的玩家在地面控制台上打印" floor" by" Debug.log(collision.gameObject)"但当它与其他对象相交时,如立方体控制台将打印出" cube"但当我离开它时,控制台不会改回"地板"为什么????
我正在使用transform.translate移动和跳转并使用方法OnCollisionEnter进行碰撞检测
答案 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);
}
}