Playerの作成3(Jump機能の実装)

ジャンプ
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerMovement : MonoBehaviour { public float speed; private float moveH; private Rigidbody2D rb2d; private Animator animator; private SpriteRenderer spriteRenderer; // ★追加(ジャンプ) public float jumpSpeed; public AudioClip jumpSound; void Start() { rb2d = GetComponent<Rigidbody2D>(); animator = GetComponent<Animator>(); spriteRenderer = GetComponent<SpriteRenderer>(); } void Update() { moveH = Input.GetAxisRaw("Horizontal"); rb2d.velocity = new Vector2(moveH * speed, rb2d.velocity.y); animator.SetFloat("Speed", moveH); if (moveH > 0.5f) { spriteRenderer.flipX = false; } else if (moveH < -0.5f) { spriteRenderer.flipX = true; } // ★追加(ジャンプ) if (Input.GetKeyDown(KeyCode.Space)) { rb2d.velocity = Vector2.up * jumpSpeed; AudioSource.PlayClipAtPoint(jumpSound, Camera.main.transform.position); } } }
C#




二段ジャンプの禁止
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerMovement : MonoBehaviour { public float speed; private float moveH; private Rigidbody2D rb2d; private Animator animator; private SpriteRenderer spriteRenderer; public float jumpSpeed; public AudioClip jumpSound; // ★追加(二段ジャンプの禁止) public LayerMask floor; void Start() { rb2d = GetComponent<Rigidbody2D>(); animator = GetComponent<Animator>(); spriteRenderer = GetComponent<SpriteRenderer>(); } void Update() { moveH = Input.GetAxisRaw("Horizontal"); rb2d.velocity = new Vector2(moveH * speed, rb2d.velocity.y); animator.SetFloat("Speed", moveH); if (moveH > 0.5f) { spriteRenderer.flipX = false; } else if (moveH < -0.5f) { spriteRenderer.flipX = true; } if (Input.GetKeyDown(KeyCode.Space) && IsGrounded()) // ★追加(二段ジャンプの禁止) { rb2d.velocity = Vector2.up * jumpSpeed; AudioSource.PlayClipAtPoint(jumpSound, Camera.main.transform.position); } } // ★追加(二段ジャンプの禁止) // 接地判定のメソッド private bool IsGrounded() { RaycastHit2D hit2d = Physics2D.Raycast(transform.position, Vector2.down, 0.6f, floor); return hit2d.collider != null; } }
C#





【2022版】DarkCastle(全39回)
他のコースを見る
ジャンプ
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerMovement : MonoBehaviour { public float speed; private float moveH; private Rigidbody2D rb2d; private Animator animator; private SpriteRenderer spriteRenderer; // ★追加(ジャンプ) public float jumpSpeed; public AudioClip jumpSound; void Start() { rb2d = GetComponent<Rigidbody2D>(); animator = GetComponent<Animator>(); spriteRenderer = GetComponent<SpriteRenderer>(); } void Update() { moveH = Input.GetAxisRaw("Horizontal"); rb2d.velocity = new Vector2(moveH * speed, rb2d.velocity.y); animator.SetFloat("Speed", moveH); if (moveH > 0.5f) { spriteRenderer.flipX = false; } else if (moveH < -0.5f) { spriteRenderer.flipX = true; } // ★追加(ジャンプ) if (Input.GetKeyDown(KeyCode.Space)) { rb2d.velocity = Vector2.up * jumpSpeed; AudioSource.PlayClipAtPoint(jumpSound, Camera.main.transform.position); } } }
C#




二段ジャンプの禁止
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerMovement : MonoBehaviour { public float speed; private float moveH; private Rigidbody2D rb2d; private Animator animator; private SpriteRenderer spriteRenderer; public float jumpSpeed; public AudioClip jumpSound; // ★追加(二段ジャンプの禁止) public LayerMask floor; void Start() { rb2d = GetComponent<Rigidbody2D>(); animator = GetComponent<Animator>(); spriteRenderer = GetComponent<SpriteRenderer>(); } void Update() { moveH = Input.GetAxisRaw("Horizontal"); rb2d.velocity = new Vector2(moveH * speed, rb2d.velocity.y); animator.SetFloat("Speed", moveH); if (moveH > 0.5f) { spriteRenderer.flipX = false; } else if (moveH < -0.5f) { spriteRenderer.flipX = true; } if (Input.GetKeyDown(KeyCode.Space) && IsGrounded()) // ★追加(二段ジャンプの禁止) { rb2d.velocity = Vector2.up * jumpSpeed; AudioSource.PlayClipAtPoint(jumpSound, Camera.main.transform.position); } } // ★追加(二段ジャンプの禁止) // 接地判定のメソッド private bool IsGrounded() { RaycastHit2D hit2d = Physics2D.Raycast(transform.position, Vector2.down, 0.6f, floor); return hit2d.collider != null; } }
C#





Playerの作成3(Jump機能の実装)