//使角色能够左右移动
void MoveLeftOrRight ()
{
if (Input.GetKey (KeyCode.A))
{
if (currentHorizontalDistance <= -maxHorizontalDistance)
{
return;
}
transform.Translate (Vector3.left * Time.deltaTime * horizontalMoveSpeed);
currentHorizontalDistance -= Time.deltaTime * horizontalMoveSpeed;
}
else if (Input.GetKey (KeyCode.D))
{
if (currentHorizontalDistance >= maxHorizontalDistance)
{
return;
}
transform.Translate (Vector3.right * Time.deltaTime * horizontalMoveSpeed);
currentHorizontalDistance += Time.deltaTime * horizontalMoveSpeed;
}
else
{
if (currentHorizontalDistance > 0)
{
transform.Translate (Vector3.left * Time.deltaTime * horizontalMoveSpeed);
currentHorizontalDistance -= Time.deltaTime * horizontalMoveSpeed;
if (currentHorizontalDistance < 0.05f)
{
transform.Translate (Vector3.left * currentHorizontalDistance);
currentHorizontalDistance = 0;
}
}
else if (currentHorizontalDistance < 0)
{
transform.Translate (Vector3.right * Time.deltaTime * horizontalMoveSpeed);
currentHorizontalDistance += Time.deltaTime * horizontalMoveSpeed;
if (currentHorizontalDistance > -0.05f)
{
transform.Translate (Vector3.right * -currentHorizontalDistance);
currentHorizontalDistance = 0;
}
}
else
{
return;
}
}
}
本文介绍了一个Unity中的角色移动脚本,该脚本允许角色根据玩家输入进行左右移动,并且限制了移动范围,确保角色不会超出设定的最大水平距离。通过检测键盘输入并结合当前水平偏移量来控制角色的位置。
4836

被折叠的 条评论
为什么被折叠?



