我正在尝试在Unity3D引擎中开发游戏。我的游戏主角有2d精灵和动画。然而,环境是3D。你可以在这里看到它:
http://www.youtube.com/watch?v=jhT_PniyySY
视频中也存在问题,当您向左移动并向右转(或其他方向)时,动画会突然改变而没有任何问题。但是当你向左移动并向上或向下转动时,动画的变化反应迟了。我认为这可能是因为它等待动画完成,但为什么它不会发生在左右运动呢?
我的朋友建议我在右边使用动画过渡面板,因为他还怀疑它等到动画结束,但我甚至没有在不同方向的步行和运行动画之间进行过渡。
我怀疑我面对的布尔无法正常工作所以我在这里设置它:
void Movement()
{
anim.SetFloat("horizontalspeed", Input.GetAxis ("Horizontal"));
anim.SetFloat("verticalspeed", Input.GetAxis ("Vertical"));
if(Input.GetKey(KeyCode.D))
{
if(anim.GetBool ("facingRight") != true)
{
anim.SetBool ("facingRight", true);
}
else
{
anim.SetBool ("facingRight", false);
}
}
if(Input.GetKey(KeyCode.A))
{
if(anim.GetBool ("facingLeft") != true)
{
anim.SetBool ("facingLeft", true);
}
else
{
anim.SetBool ("facingLeft", false);
}
}
if(Input.GetKey(KeyCode.W))
{
if(anim.GetBool ("facingUp") != true)
{
anim.SetBool ("facingUp", true);
}
else
{
anim.SetBool ("facingUp", false);
}
}
if(Input.GetKey(KeyCode.S))
{
if(anim.GetBool ("facingDown") != true)
{
anim.SetBool ("facingDown", true);
}
else
{
anim.SetBool ("facingDown", false);
}
}
else
{
anim.SetBool ("facingRight", true);
anim.SetBool ("facingLeft", true);
anim.SetBool ("facingUp", true);
anim.SetBool ("facingDown", true);
}
}
请帮我解决我的无聊问题。我非常感激。
答案 0 :(得分:0)
如果你按下两个键(对角线),你最终可以得到2个状态。 (例如,向上和向左) 看起来如果同时按住所有键,你可能能够获得所有4个方向! 因此,根据您选择动画的方式,它可能会保持错误的动画。
e.g。如果你左右两边都持有...它可能会优先考虑剩下的。
希望您每场比赛更新您的动作。 (尽快)