【发布时间】:2018-12-26 14:06:35
【问题描述】:
我有一个控制角色移动的屏幕按钮,即向右走、向左走和跳跃。我的 Walk Left 和 Jump 按钮事件与动画正常工作,但右侧按钮只是移动角色而不播放 walk 动画,我使用 setFloat 来检测角色的移动,请帮助我确定为什么没有向右走动画玩。
我的移动控制脚本:
void Movement()
{
if (RightPressed)
{
target.Translate(Vector2.right * 3f * Time.deltaTime);
target.eulerAngles = new Vector2(0, 0);
}
if (LeftPressed)
{
target.Translate(-Vector2.right * 3f * Time.deltaTime);
target.eulerAngles = new Vector2(0, 0);
}
if (SpacePressed && isJumping == true)
{
if (jumpTimeCounter > 0)
{
rb.velocity = Vector2.up * jumpForce;
rb.freezeRotation = true;
jumpTimeCounter -= Time.deltaTime;
anim.SetBool("IsJumping", true);
}
else
{
isJumping = false;
}
}
}
我的更新功能:
void Update () {
Movement();
{
if (RightPressed)
anim.SetFloat("speed", 0.1f);
else
anim.SetFloat("speed", 0.0f);
if (LeftPressed)
anim.SetFloat("speed", -0.1f);
else
anim.SetFloat("speed", 0.0f);
isGrounded = Physics2D.OverlapCircle(feetPos.position, checkRadius, whatIsGround);
}
}
我的屏幕按钮功能
public void OnScreenButtonChange(string dir)
{
switch (dir)
{
case "A":
LeftPressed = !LeftPressed;
break;
case "D":
RightPressed = !RightPressed;
break;
case "Space":
SpacePressed = !SpacePressed;
break;
}
}
【问题讨论】:
标签: c# visual-studio unity3d game-development