実現したいこと
Unity2D キャラクターをジャンプした後に落下するときの落下モーションを導入したいのですがその落下を検知する方法が知りたい。
プレイヤーのy座標の数値が下がっていることを検知できればあとはそこをif文等にすれば落下モーションを実現できるのですが
教えてくれますでしょうか?
該当のソースコード
Unity c#
player.cs
※ソースはプロジェクト内に一つだけです。
public class PlayerController : MonoBehaviour { public float JumpForce = 200.0f; public float speed = 0.5f; private bool isJump; private bool isRun; private bool isGround; private Animator animator; private Transform tr; private Transform tr2; // Use this for initialization void Start () { // rigidbody = GetComponent<Rigidbody2D>(); tr = GetComponent<Transform>(); tr2 = GetComponent<Transform>(); animator = GetComponent<Animator>(); isJump = false; isRun = false; isGround = false; } // Update is called once per frame void Update () { int key = 0; //if(transform.position.y < ) if(Input.GetKey(KeyCode.Space)) { if (!isJump) { GetComponent<Rigidbody2D>().AddForce(new Vector2(0, JumpForce)); animator.SetBool("Jump",true); isJump = true; } } if(isJump == false) { animator.SetBool("Jump",false); } if (Input.GetKey(KeyCode.RightArrow)) { key = 1; transform.Translate(Vector3.right * speed); if(isRun == false && isJump == false) { animator.SetBool("Run",true); } } if (Input.GetKey(KeyCode.LeftArrow)) { key = -1; transform.Translate(Vector3.left * speed); if(isRun == false && isJump == false) { animator.SetBool("Run",true); } } if(key == 0 || isJump == true) { isRun = false; animator.SetBool("Run",false); } if(key != 0) { transform.localScale = new Vector3(key,1,1); } } private void OnCollisionEnter2D(Collision2D collision) { isJump = false; isGround = true; } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。