我有一个简单平台和一个代表玩家的立方体,构成了一个三维世界。当我旋转平台时,由于物理材料中摩擦力的增加和减少,立方体会滑动并表现得像您所期望的那样。
我希望当输入(例如向前)结束后,立方体仍然继续滑动。但事实并非如此。我尝试使用 rigidbody.position
更新位置并进行更新。我很快就明白它不会与物理引擎协同工作。
现在我有以下代码。但它仍无法按照期望的那样工作。我希望能得到一些指针来解决这个问题。
public class Player1 : MonoBehaviour
{
private float speed = 10f;
private Vector3 direction;
private Vector3 velocity;
private float vertical;
private float horizontal;
Rigidbody playerRigidBody;
// Start is called before the first frame update
void Start()
{
playerRigidBody = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
vertical = Input.GetAxisRaw("Vertical");
horizontal = Input.GetAxisRaw("Horizontal");
direction = new Vector3(horizontal, 0, vertical);
}
private void FixedUpdate()
{
velocity = direction.normalized * speed * Time.fixedDeltaTime;
playerRigidBody.MovePosition(transform.position + velocity);
}
}