gpt4 book ai didi

c# - 为什么我的播放器统一旋转

转载 作者:太空宇宙 更新时间:2023-11-03 14:51:22 24 4
gpt4 key购买 nike

我将一个移动脚本附加到播放器。引用滚球教程修改为跳跃。问题是,当玩家可以向任何方向移动时,玩家开始朝那个方向旋转,即使我站在一个位置不动,它也会开始旋转并从平台上掉下来。播放器有一个刚体,boxcollider 组件。

void Awake ()
{
playerRigidbody = GetComponent<Rigidbody>();
Coll = GetComponent<CapsuleCollider>();
}

/*private void Update()
{

}*/
// Update is called once per frame
void FixedUpdate ()
{
float h = Input.GetAxisRaw("Horizontal");
float v = Input.GetAxisRaw("Vertical");
bool down = Input.GetKeyDown(KeyCode.Space);

if (down)
{
playerRigidbody.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
}

Move(h, v);
}

private bool IsGrounded()
{

return Physics.CheckCapsule(Coll.bounds.center, new Vector3(Coll.bounds.center.x,Coll.bounds.min.y,Coll.bounds.center.z),Coll.height * 9f,Ground);
}

void Move (float h, float v)
{
movement.Set(h, 0f, v);
movement = movement.normalized * speed * Time.deltaTime;

playerRigidbody.MovePosition(transform.position + movement);
}

最佳答案

在您的代码中,您使用了 AddForce 函数,因此我确认您的播放器刚体没有将 Kinematic 设置为 true。

当您的角色与任何其他物体(例如地面、墙壁)发生碰撞时,您的角色可能会旋转。

你可以像 Bijan 说的那样通过 inspector 卡住刚体的旋转。

我不建议您同时使用 AddForce 和 MovePosition。它可能还有其他问题。 like this

关于c# - 为什么我的播放器统一旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51601427/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com