2017-05-16 8 views
0

こんにちはみんな私の最初のアプリを作っています。私はこれがかなり読み込まれた質問だと知っていますが、スクリプトコードが異なるため、例に従うのは苦労しています。私は2Dプラットフォームランナーを作っています。まず、プラットフォーム、環境、物理学のすべてではないにしても多数を作成しました。この時点でのプレイヤーは単なるサークル(単にプレースホルダー)です。円は左から右に移動してジャンプすることができます。私は今、実際のプレイヤーのスプライトを作成し、ウォーキング、ジャンプ、アイドリングのアニメーションを作成しました。現在のサークルのプレースホルダとスクリプトに新しいスプライトアニメーションを適用するにはどうすればよいですか?私の次のステップは、アニメーターに入り、私が推測するトランジションを開始することです。私の現在のスクリプトにアニメーションを追加する方法がわかりません。私はこれが挑戦になることを知っていました。あなたが必要とする情報があれば教えてください。ありがとうございます。ユニティのプレイヤーにアニメーションを適用する方法

これは現在、自分のサークルプレーヤー/プレースホルダに添付されている「Controls.cs」です。私のCheckGroundは彼に付いています。他のすべては、彼がジャンプしているプラ​​ットフォームに関連している必要があり、私は変わるとは思わない。繰り返しますが、現在のサークル/プレースホルダーの代わりにスプライトを歩き、飛び降りて遊んでいます。左右の矢印が押されたときにウォーキングアニメーション、ジャンプボタンが押されたときに再生するポンプアニメーション、それ以外のところでまだ静止しているときに再生するアイドルアニメーションが必要です。もう一度、ありがとうございます。

using UnityEngine; 
using System.Collections; 


public class Controls : MonoBehaviour 
{ 
    public Rigidbody2D rb; 
    public float movespeed; 
    public float jumpheight; 
    public bool moveright; 
    public bool moveleft; 
    public bool jump; 
    public Transform groundCheck; 
    public float groundCheckRadius; 
    public LayerMask whatIsGround; 
    private bool onGround; 

    // Use this for initialization 
    void Start() 
    { 
     rb = GetComponent<Rigidbody2D>(); 

    } 

    void FixedUpdate() 
    { 
     onGround = Physics2D.OverlapCircle(groundCheck.position, groundCheckRadius, whatIsGround); 
    } 

    // Update is called once per frame 
    void Update() 
    { 



     if (Input.GetKey(KeyCode.LeftArrow)) 
     { 
      rb.velocity = new Vector2(-movespeed, rb.velocity.y); 

     } 
     if (Input.GetKey(KeyCode.RightArrow)) 
     { 
      rb.velocity = new Vector2(movespeed, rb.velocity.y); 

     } 

     if (Input.GetKey(KeyCode.Space)) 
     { 
      if (onGround) 
      { 
       rb.velocity = new Vector2(rb.velocity.x, jumpheight); 
      } 
     } 

     if (jump) 
     { 
      if (onGround) 
      { 
       rb.velocity = new Vector2(rb.velocity.x, jumpheight); 
      } 
      jump = false; 
     } 

     if (moveright) 
     { 
      rb.velocity = new Vector2(movespeed, rb.velocity.y); 
     } 
     if (moveleft) 
     { 
      rb.velocity = new Vector2(-movespeed, rb.velocity.y); 
     } 

    } 

} 

答えて

0

Animation Controllerについて読んでください。あなたが作成した後、あなたのgameObjectからAnimatorをつかむことができますtransform.GetComponent<Animator>() 後であなたのアニメーションをブレンドしたり、それらを再生することができます。 Unityを使用すると、アニメーションを再生するための入力条件を作成することさえ可能ですので、コードをあまり入力しなくても正直です。

0

必ずアニメーションコントローラを使用してください。
このビデオを見てください - 私はこのチュートリアルの次の次のとおりです。

https://www.youtube.com/watch?v=I0IVZhHNarg

+0

ありがとうございます。申し訳ありませんがあなたに戻って時間がかかりました。私はそのチュートリアルに続いて作業を開始しました。 – Andrew