我有一个球可以单独向前移动,玩家只需要向左或向右转就可以得到宝石,而不会掉下来。
问题是我使用了一个名为AddForce的函数来推动球向前移动,但是我不知道如何根据轨道的方向来适应方向。如果有个左转弯,例如,我希望我的球自行转弯以重新适应赛道,使摄像机紧随其后。
void FixedUpdate()
{
float moveHorizontal = Input.GetAxis("Horizontal") * sideSpeed * rb.velocity.magnitude / acceleration;
if (rb.velocity.magnitude <= speedLimit)
{
rb.AddForce(0.0f, 0.0f, acceleration); // add vertical force
}
rb.AddForce(moveHorizontal, 0.0f, 0.0f); // add horizontal force
}
答案 0 :(得分:0)
您可以尝试使用Rigidbody.AddRelativeForce(),在球的相对向前方向上施加力,因此,无论球旋转了多少,球总是向前移动。尝试这样的事情:
void FixedUpdate()
{
float moveHorizontal = Input.GetAxis("Horizontal") * sideSpeed * rb.velocity.magnitude / acceleration;
if (rb.velocity.magnitude <= speedLimit)
{
rb.AddRelativeForce(0.0f, 0.0f, acceleration); // Add vertical force
}
rb.AddRelativeForce(moveHorizontal, 0.0f, 0.0f); // Add relative horizontal force
}
希望这会有所帮助!