我正在尝试制作一个玩家动作脚本(在水中),但我不了解加力的工作原理。 我希望播放器在没有重力的环境中自由移动,并且希望播放器向上缓慢移动而不是向下缓慢移动。
这是我的代码:
public class PlayerMovementWater : MonoBehaviour
{
public Rigidbody2D rb2;
public int movementhorizontal = 10;
public int movementverticalup = 5;
public int movementverticaldown = 13;
void FixedUpdate()
{
float xdirection = Input.GetAxisRaw("Horizontal");
float ydirection = Input.GetAxisRaw("Vertical");
if (xdirection == -1)
{
rb2.AddForce(-movementhorizontal * Time.deltaTime, 0f);
}
else if (xdirection == 1)
{
rb2.AddForce(movementhorizontal * Time.deltaTime; 0f);
}
if (ydirection == -1)
{
rb2.AddForce(0f, -movementverticaldown * Time.deltaTime);
}
else if (ydirection == -1)
{
rb2.AddForce(0f, movementverticalup * Time.deltaTime);
}
}
}`
答案 0 :(得分:0)
您需要创建一个可在AddForce中使用的向量,而不是传递2个参数。
例如:
rb2.AddForce(new Vector2(-movementhorizontal * Time.deltaTime, 0f));