将 body 类型设置为动态时角色不会向前移动
Character is not moving foward when setting body type to Dynamic
目前我在使用此代码将角色移动到 x 位置时遇到 1 个问题
Vector3 temp = transform.position;
temp.x += forwardSpeed * Time.deltaTime;
transform.position = temp;
下面是inspector的设置
如果我设置 body 类型为 Dynamic
角色可以上下移动但是如果我设置 body 类型为 Kinematic
角色可以向前移动但是当我点击到屏幕人物会跳出屏幕。
下面是我的源码,希望大家指出我做错了什么
我的来源code
您应该使用 Rigidbody2D.MovePosition 来移动刚体。
Vector3 temp = transform.position;
temp.x += forwardSpeed * Time.deltaTime;
var rb = GetComponent<Rigidbody2D>();
rb.MovePosition(temp);
您也可以使用 rb.position = temp
,但 MovePosition()
提供了最好的碰撞检测。
如果这也不起作用,则碰撞器会在向前方向阻挡刚体,从而阻止它向该方向移动。在这种情况下,请检查对象的层次结构,包括其子对象。
目前我在使用此代码将角色移动到 x 位置时遇到 1 个问题
Vector3 temp = transform.position;
temp.x += forwardSpeed * Time.deltaTime;
transform.position = temp;
下面是inspector的设置
如果我设置 body 类型为 Dynamic
角色可以上下移动但是如果我设置 body 类型为 Kinematic
角色可以向前移动但是当我点击到屏幕人物会跳出屏幕。
下面是我的源码,希望大家指出我做错了什么
我的来源code
您应该使用 Rigidbody2D.MovePosition 来移动刚体。
Vector3 temp = transform.position;
temp.x += forwardSpeed * Time.deltaTime;
var rb = GetComponent<Rigidbody2D>();
rb.MovePosition(temp);
您也可以使用 rb.position = temp
,但 MovePosition()
提供了最好的碰撞检测。
如果这也不起作用,则碰撞器会在向前方向阻挡刚体,从而阻止它向该方向移动。在这种情况下,请检查对象的层次结构,包括其子对象。