我有两个 UI 按钮,用于控制玩家的移动(左右),而不是使用按钮脚本组件,我决定使用事件触发脚本组件;一个点向下事件来移动我的播放器和一个点向上事件来停止我的播放器的移动。我的问题:我创建了一个行走动画(在我的动画师中),当用户按住左或右按钮时将播放该动画,动画很流畅(这是我喜欢的)但是如果玩家要点击按钮一次(而不是点击并按住按钮)动画不播放并且移动不移动或者动画太快并且移动非常短。我想要做的:我想保持玩家的运动方式,但我也希望在用户点击一次时为玩家提供流畅的动画和运动。
这是我的脚本:
public bool movingLeft = false;
public bool movingRight = false;
public float speed = 2f;
public Vector3 moveDirectionLeft = Vector3.left;
public Vector3 moveDirectionRight = Vector3.right;
void Start () {
movingLeft = false;
movingRight = false;
}
void Update () {
if (movingLeft == true) { // LEFT BUTTON //
WalkAnim.SetBool ("WalkLeft", true);// walk left
transform.Translate (moveDirectionLeft * speed * Time.deltaTime);
} else if (movingLeft == false) {
speed = 0;
WalkAnim.SetBool ("WalkLeft", false); // goes back to idle
}
if (movingRight == true) { // RIGHT BUTTON //
WalkAnim.SetBool ("WalkRight", true); // walks right
transform.Translate (moveDirectionRight * speed * Time.deltaTime);
} else if (movingLeft == false) {
speed = 0;
WalkAnim.SetBool ("WalkRight", false); // goes back to idle
}
}
public void limitLD() { // UI Button Event trigger - pointUp
movingLeft = false;
}
public void limitRD() { // UI Button Event trigger - pointUp
movingRight = false;
}
public void MoveLeft() { // UI Button Event trigger - pointDown
movingLeft = true;
movingRight = false;
}
public void MoveRight() { // UI Button Event trigger - pointDown
movingLeft = false;
movingRight = true;
}
米琪卡哇伊
相关分类