【发布时间】:2019-08-08 10:38:53
【问题描述】:
void attacking()
{
if ((_attack.attackk || Input.GetMouseButtonDown(0)) && spr.flipX==false)
{
anim.Play("SlashR");
}if((_attack.attackk || Input.GetMouseButtonDown(0)) && spr.flipX==true){
anim.Play("SlashL");
}
if (health.rectTransform.sizeDelta.x <= 0)
{
anim.SetBool("death", true);
isDeath = true;
}
else
{
anim.SetBool("death", false);
isDeath = false;
}
}
我正在尝试制作 2D 砍杀游戏,这就是我需要战斗系统的原因。 所以,要做到这一点,我想制作两个动画,SlashR 是右剑,SlashL 是左剑。我想要做的是,如果我按下鼠标按钮并且我的角色向右转,那么将播放 SlashR 动画,反之亦然反之亦然。 但是当我按下鼠标按钮时(flipX=false)SlashR 动画只播放一次。一个动画完成后,动画完全停止,反之亦然。 但也有奇怪的事情,当我向左转我的角色然后向右转时,SlashR 动画又开始播放了。 注意:未选中 SlashR 和 SlashL 的循环时间
【问题讨论】:
-
您能否附上您正在使用的 Animator 的状态图屏幕截图?
-
是的,这里是pasteboard.co/IrJjIPJD.png。我不使用动画师来制作这些斜线动画,因为动画师会导致动画撕裂问题,所以我想为动画 SlashR 和 SlashL 使用脚本。
标签: c# unity3d game-engine