如何让角色在向左移动时播放另一个动画?
问题描述:
我有使脚本(游戏对象)向右移动的脚本。如何让角色在向左移动时播放另一个动画?
当他到达右边框时,我该如何制作,角色开始向左移动并播放另一个动画(向左移动)?
这是我的性格的向右移动的脚本,并留下
void MovementRight()
{
_character.transform.Translate (Vector2.right 100f Time.deltaTime);
}
void MovementLeft()
{
_character.transform.Translate (Vector3.left 100f Time.deltaTime);
}
答
我建议你处理动画和动画师,使水平动画在动画浮点型变量,(所以当它被处理-1动画走左边,1动画走右边)。
所以你需要制作3个脚本。 //这将处理动画获得字符的速度从MovingHandler AnimationHandler.cs
//这基于输入处理程序 MovingHandler.cs
//你可以在这里听到的实际移动字符输入 InputHandler.cs
并且为了使角色不会移动到屏幕之外,您需要在MovingHandler上获取屏幕限制,并在移动角色之前进行检查,如果它位于x中的相同位置作为屏幕的边界,你将会返回;如果它要走到左边,并且字符是< =比左边界更靠后,则返回;和右边界相同> =然后返回; 事情是这样的:
Transform charTransform;
float leftHorizontalBound;
float rightHorizontalBound;
void Start()
{
charTransform = this.transform;
leftHorizontalBound = camera.ViewportToWorldPoint (new Vector3 (0,0, camera.nearClipPlane)).x;
rightHorizontalBound= camera.ViewportToWorldPoint (new Vector3 (1,0, camera.nearClipPlane)).x;
}
void Update()
{
if(charTransform.position.x <= leftHorizontalBound)
{
charTransform.position = new vector2(leftHorizontalBound + 0.1f);
return;
}
if(charTransform.position.x >= rightHorizontalBound)
{
charTransform.position = new vector2(rightHorizontalBound - 0.1f);
return;
}
//MAKE HERE YOUR MOVEMENT BASED ON INPUT.
}
不要使用该代码只是使用的想法,因为我没有测试它,我只是在这里代码时。
我希望它有帮助。
Charecter通过场景的边界移动,在调试时说,charecter总是有0 0 0个坐标,为什么? – Drukalo 2015-02-10 22:13:34