CharacterController 的对撞机不会与 BoxCollider2D 发生碰撞
CharacterController's collider doesn't collide with BoxCollider2D
我的场景中有一个播放器和一个平台。场景是二维的。
这是平台的组件:
这里是玩家的组件:
[]
要移动播放器 - 我使用 SimpleMove() 方法:
CharacterController controller;
public float speed = 3.0F;
void Start()
{
controller = GetComponent<CharacterController>();
}
void Update()
{
float movement = Input.GetAxis("Horizontal");
Vector2 movementVector = new Vector2(movement, 0f);
controller.SimpleMove(movementVector * speed);
}
恐怕您要实现的目标无法按预期工作。 Character Controller 实际上是为 3D 而设计的,您期望它与工作方式不同且最重要的是不兼容的 2D 碰撞器发生碰撞
角色控制器为其对象带来 3D 胶囊碰撞器 - 请参阅 https://docs.unity3d.com/Manual/class-CharacterController.html
您可以尝试添加一些 2D collider 并最终将 RigiBody2D 添加到您的对象中。角色控制器也适用于不使用物理的情况(碰撞除外),因此如果您的 2D 游戏也是这种情况,那么创建自己的角色控制器也可能是非常直接的选择
我的场景中有一个播放器和一个平台。场景是二维的。
这是平台的组件:
这里是玩家的组件:
[
要移动播放器 - 我使用 SimpleMove() 方法:
CharacterController controller;
public float speed = 3.0F;
void Start()
{
controller = GetComponent<CharacterController>();
}
void Update()
{
float movement = Input.GetAxis("Horizontal");
Vector2 movementVector = new Vector2(movement, 0f);
controller.SimpleMove(movementVector * speed);
}
恐怕您要实现的目标无法按预期工作。 Character Controller 实际上是为 3D 而设计的,您期望它与工作方式不同且最重要的是不兼容的 2D 碰撞器发生碰撞
角色控制器为其对象带来 3D 胶囊碰撞器 - 请参阅 https://docs.unity3d.com/Manual/class-CharacterController.html
您可以尝试添加一些 2D collider 并最终将 RigiBody2D 添加到您的对象中。角色控制器也适用于不使用物理的情况(碰撞除外),因此如果您的 2D 游戏也是这种情况,那么创建自己的角色控制器也可能是非常直接的选择