2015-02-09 63 views
0

我有使腳本(遊戲對象)向右移動的腳本。如何讓角色在向左移動時播放另一個動畫?

當他到達右邊框時,我該如何製作,角色開始向左移動並播放另一個動畫(向左移動)?

這是我的性格的向右移動的腳本,並留下

void MovementRight() 
{ 
    _character.transform.Translate (Vector2.right 100f Time.deltaTime); 
} 

void MovementLeft() 
{ 
    _character.transform.Translate (Vector3.left 100f Time.deltaTime); 
} 

回答

0

我建議你處理動畫和動畫師,使水平動畫在動畫浮點型變量,(所以當它被處理-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