如何与角色控制器组件一起检查墙壁碰撞? 我知道 OnControllerColliderHit 存在,但它只检查地板和玩家之间的碰撞,我想检查墙壁和玩家之间的碰撞,以及能够获取它接触的墙壁游戏对象的名称。
您可以在每面墙上添加一个标签,然后使用角色控制器中的方法
OnCollisionEnter()
并检查您碰撞的对象。
private void OnCollisionEnter(Collision collision)
{
var collidedObject = collision.gameObject;
if (collidedObject.CompareTag("Wall"))
{
var objectName = collidedObject.name;
}
}
如果您的游戏是 2D 游戏,您可以使用此方法
OnCollisionEnter2D(Collision2D collision)
来处理 2D 碰撞,但请记住,您还需要在墙壁对象上添加碰撞器组件。
我建议您为您的墙壁创建一个预制件,这样您就不必在每面墙上手动添加标签。