我在Unity/C#课程中创建了一个游戏,并且有合作模式。
PlayerOne 和 PlayerTwo 有两种不同的输入方法,它们的行为也不同。 PlayerOne 在我按下按钮的时间和它在游戏中移动的时间之间似乎有一个小的延迟。或者它只是需要加速,而 PlayerTwo 只是瞬间达到速度。
void CalculateMovement()
{
if (_PlayerTwo == false)
{
float HorizontalInput = Input.GetAxis("Horizontal");
float VerticalInput = Input.GetAxis("Vertical");
Vector3 direction = new Vector3(HorizontalInput, VerticalInput, 0);
if (_speedBoostActive == false)
{
transform.Translate(direction * _speed * Time.deltaTime);
}
else
{
transform.Translate(direction * (_speed * 1.5f) * Time.deltaTime);
}
}
// The code above is for PlayerOne
else
{
float _speedboost = 1.0f;
if (_speedBoostActive == true)
{
_speedboost = 1.5f;
}
if (Input.GetKey(KeyCode.Keypad8))
{
transform.Translate(Vector3.up * _speed * _speedboost * Time.deltaTime);
}
else if (Input.GetKey(KeyCode.Keypad5))
{
transform.Translate(Vector3.down * _speed * _speedboost * Time.deltaTime);
}
if (Input.GetKey(KeyCode.Keypad4))
{
transform.Translate(Vector3.left * _speed * _speedboost * Time.deltaTime);
}
else if (Input.GetKey(KeyCode.Keypad6))
{
transform.Translate(Vector3.right * _speed * _speedboost * Time.deltaTime);
}
}
// The code above is for PlayerTwo. Below are just a way to delimit an area in the game and create a wrap in x-axis
transform.position = new Vector3(transform.position.x, Mathf.Clamp(transform.position.y, -3.9f, 0), 0);
if (transform.position.x > 9.6f)
{
transform.position = new Vector3(-9.6f, transform.position.y, 0);
}
else if (transform.position.x < -9.6f)
{
transform.position = new Vector3(9.6f, transform.position.y, 0);
}
}
有人知道为什么会有差异吗?我只是根据课程说的去做创建的,但是对于这种差异没有任何解释。