ジャンプしてブロックの上にのぼるりそこでもまたジャンプすると思うのですがそのジャンプするときに四角いブロックの両端のにコライダーが擦り当たってるとその地点からまたジャンプ出来てしますがその動作はゲーム上変なのでブロックの上にいたときだけジャンプできブロックの両端ではジャンプできない仕様にしたいのですがどうすればいいのでしょうか?教えてくれますでしょうか?
player.cs
1public class PlayerController : MonoBehaviour { 2 3 public float JumpForce = 200.0f; 4 public float speed = 0.5f; 5 private bool isJump; 6 private bool isRun; 7 private bool isGround; 8 private Animator animator; 9 10 11 // Use this for initialization 12 void Start () { 13 14 15 animator = GetComponent<Animator>(); 16 isJump = false; 17 isRun = false; 18 isGround = false; 19 } 20 21 22 // Update is called once per frame 23 void Update () { 24 int key = 0; 25 26 //if(transform.position.y < ) 27 28 if(Input.GetKey(KeyCode.Space)) 29 { 30 31 if (!isJump) 32 { 33 GetComponent<Rigidbody2D>().AddForce(new Vector2(0, JumpForce)); 34 animator.SetBool("Jump",true); 35 isJump = true; 36 } 37 } 38 39 if(isJump == false) 40 { 41 animator.SetBool("Jump",false); 42 } 43 44 if (Input.GetKey(KeyCode.RightArrow)) 45 { 46 key = 1; 47 transform.Translate(Vector3.right * speed); 48 49 if(isRun == false && isJump == false) 50 { 51 animator.SetBool("Run",true); 52 53 } 54 } 55 56 57 58 if (Input.GetKey(KeyCode.LeftArrow)) 59 { 60 key = -1; 61 transform.Translate(Vector3.left * speed); 62 63 if(isRun == false && isJump == false) 64 { 65 animator.SetBool("Run",true); 66 } 67 } 68 69 if(key == 0 || isJump == true) 70 { 71 isRun = false; 72 animator.SetBool("Run",false); 73 } 74 75 76 if(key != 0) 77 { 78 transform.localScale = new Vector3(key,1,1); 79 } 80 81 82 } 83 84 private void OnCollisionEnter2D(Collision2D collision) 85 { 86 isJump = false; 87 isGround = true; 88 89 } 90} 91
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/03/26 06:16
退会済みユーザー
2019/03/26 06:20