2017-01-16 13 views
1

に軸コントロールにスイッチがあるときに動作していない:アニメーションは、次のように私は私のプレーヤーとコードに移動アニメーションをしていた画面のボタンコントロール

if (Input.GetAxis ("Horizontal") > 0.5||Input.GetAxis ("Horizontal") < -0.5) { 
      myRigidBody.velocity = new Vector2 (Input.GetAxis ("Horizontal") * moveSpeed, myRigidBody.velocity.y); 
      robotMove = true; 
      lastMove = myRigidBody.velocity.x; 
     } 

     anim.SetFloat ("MoveX", Input.GetAxis ("Horizontal")); 
     anim.SetBool ("RobotMoving", robotMove); 
     anim.SetFloat ("LastMoveX", lastMove); 

uがコントロールの上に見ることができるように軸コントロール(キーボード)です。

しかし、これらのアニメーションを私が画面上に作成したコントロールボタンで操作したいと思っています!

私は、PICに見られるように、この2つのbutonsを持っている:私はeventriggeronPointerDownを使用しています

btns on screen

ので、これらの関数を呼び出すようプレイヤーにgameobjectを添付:

public void moveleft(){ 
     myRigidBody.velocity = new Vector2 (-moveSpeed, myRigidBody.velocity.y); 
     robotMove = true; 
     anim.SetFloat ("MoveX", -moveSpeed); 
     anim.SetBool ("RobotMoving", robotMove); 
    } 

    public void moveright(){ 
     myRigidBody.velocity = new Vector2 (moveSpeed, myRigidBody.velocity.y); 
     robotMove = true; 
     anim.SetFloat ("MoveX", moveSpeed); 
     anim.SetBool ("RobotMoving", robotMove); 
    } 

    public void jump(){ 
     if (grounded) { 
      myRigidBody.velocity = new Vector2 (myRigidBody.velocity.x, jumpHeight); 
     } 

今だけ軸のコントロールのように、プレイヤーはある距離(私が保持していれば連続ではなく)に移動していますが、軸の作業はですこのボタンで作業していません

誰もがそれが起こっている理由を伝えることができますか?

は、uはどちらかupdate()または私はすべてのアニメーション値を置くことだったやった それでは、いくつかの外部function()コールに amin.setxxx一つだけ呼び出すことができます参照してください:次のように

+0

ボタンのコードも必要です。私の推測が正しければ、あなたはボタンをクリックしている1フレームで "MoveLeft()"をやっているだけですか? – Maakep

+1

はい!左は 'moveLeft()'、右は 'MoveRight'です。コードは@Fredrikの上にあります – utkdub

答えて

1

他人を助けるために、私は私の問題を解決しました

public void moveLeft(){ 



     myRigidBody.velocity = new Vector2 (-moveSpeed, myRigidBody.velocity.y); 
     robotMove = true; 
     lastMove = myRigidBody.velocity.x; 
     anim.SetFloat ("MoveX", -moveSpeed); 
     anim.SetFloat ("LastMoveX", lastMove); 
     anim.SetBool ("RobotMoving", robotMove); 


    } 

    public void moveRight(){ 



     myRigidBody.velocity = new Vector2 (moveSpeed, myRigidBody.velocity.y); 
     robotMove = true; 
     lastMove = myRigidBody.velocity.x; 
     anim.SetFloat ("MoveX", moveSpeed); 
     anim.SetFloat ("LastMoveX", lastMove); 
     anim.SetBool ("RobotMoving", robotMove); 



    } 
    public void stop(){ 

     robotMove = false; 

     anim.SetBool ("RobotMoving", robotMove); 

    } 

私は移動を停止し、左右両方のボタンのeventTriggerOn pointerUpにこの停止を呼び出しています:以下のように(私のmoveLeftに入れて)とmoveRight()関数!

関連する問題