我想在进入的坡道上移动球,就像在平原上移动一样。目前,当坡度开始时,球速会降低,因此根据玩家的体验,球的总体运动会降低。
当它在地面或潮湿区域移动时,我想保持相同的速度。
这是我正在使用的代码段:
void FixedUpdate ()
{
if (!GameManager.Instance.IsGameRunninng) {
myRigidBody.velocity = Vector3.zero;
return;
}
if (isJumper) {
isJumper = false;
myRigidBody.AddForce (Vector3.up * 35f, ForceMode.Impulse);
}
isGrounded = Physics.Raycast (rayTransform.position, Vector3.down, 0.5f, groundMask);
Vector3 nextVelocity = myRigidBody.velocity;
nextVelocity.x = ballInputHandler.horizontalInput * smoothnessX;
if (!isGrounded) {
nextVelocity.y -= speed * 0.3f;
} else {
nextVelocity.y = 0;
nextVelocity.z = speed;
}
myRigidBody.velocity = Vector3.Lerp (myRigidBody.velocity, nextVelocity, smoothnessValue * Time.fixedDeltaTime);
ClampingBallMovement ();
}
希望您能正确解决我的问题,给我一些建议,以便我可以解决这个问题。
答案 0 :(得分:1)
调整nextVelocity.y
组件后:
myRigidBody.velocity = nextVelocity.normalized * desiredSpeed;