如何让角色在向左移动时播放另一个动画?

如何让角色在向左移动时播放另一个动画?

问题描述:

我有使脚本(游戏对象)向右移动的脚本。如何让角色在向左移动时播放另一个动画?

当他到达右边框时,我该如何制作,角色开始向左移动并播放另一个动画(向左移动)?

这是我的性格的向右移动的脚本,并留下

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. 
} 

不要使用该代码只是使用的想法,因为我没有测试它,我只是在这里代码时。

我希望它有帮助。

+0

Charecter通过场景的边界移动,在调试时说,charecter总是有0 0 0个坐标,为什么? – Drukalo 2015-02-10 22:13:34