Updateメソッドの中を見てほしいのですが、ここでaliveがTrueの時はHurt,Die,Attack,Jump,Runメソッドを適応するようにしているのでここをreturn falseにしたら死亡時に動けなくなるんじゃないかと思いIf分を使用したのですがvoidだからreturnは返せないよというエラーが出ました。
どうすればいいと思いますか?
まだUnity初めて1週間しかたっていないので簡単な質問でもご了承ください。
C#
1using UnityEngine; 2using System.Collections; 3using UnityEngine.UI; 4using System.Collections.Generic; 5namespace ClearSky 6{ 7 public class SimplePlayerController : MonoBehaviour 8 { 9 public float movePower = 10f; 10 public float jumpPower = 15f; //Set Gravity Scale in Rigidbody2D Component to 5 11 12 private Rigidbody2D rb; 13 private Animator anim; 14 Vector3 movement; 15 private int direction = 1; 16 bool isJumping = false; 17 private bool alive = true; 18 19 20 // Start is called before the first frame update 21 void Start() 22 { 23 rb = GetComponent<Rigidbody2D>(); 24 anim = GetComponent<Animator>(); 25 } 26 27 private void Update() 28 { 29 Restart(); 30 if (alive) 31 { 32 Hurt(); 33 Die(); 34 Attack(); 35 Jump(); 36 Run(); 37 }else{ 38 return false; 39 } 40 } 41 private void OnTriggerEnter2D(Collider2D other) 42 { 43 anim.SetBool("isJump", false); 44 } 45 46 47 void Run() 48 { 49 Vector3 moveVelocity = Vector3.zero; 50 anim.SetBool("isRun", false); 51 52 53 if (Input.GetAxisRaw("Horizontal") < 0) 54 { 55 direction = -1; 56 moveVelocity = Vector3.left; 57 58 transform.localScale = new Vector3(direction, 1, 1); 59 if (!anim.GetBool("isJump")) 60 anim.SetBool("isRun", true); 61 62 } 63 if (Input.GetAxisRaw("Horizontal") > 0) 64 { 65 direction = 1; 66 moveVelocity = Vector3.right; 67 68 transform.localScale = new Vector3(direction, 1, 1); 69 if (!anim.GetBool("isJump")) 70 anim.SetBool("isRun", true); 71 72 } 73 transform.position += moveVelocity * movePower * Time.deltaTime; 74 } 75 void Jump() 76 { 77 if ((Input.GetButtonDown("Jump") || Input.GetAxisRaw("Vertical") > 0) 78 && !anim.GetBool("isJump")) 79 { 80 isJumping = true; 81 anim.SetBool("isJump", true); 82 } 83 if (!isJumping) 84 { 85 return; 86 } 87 88 rb.velocity = Vector2.zero; 89 90 Vector2 jumpVelocity = new Vector2(0, jumpPower); 91 rb.AddForce(jumpVelocity, ForceMode2D.Impulse); 92 93 isJumping = false; 94 } 95 void Attack() 96 { 97 if (Input.GetKeyDown(KeyCode.Alpha1)) 98 { 99 anim.SetTrigger("attack"); 100 } 101 } 102 void Hurt() 103 { 104 if (Input.GetKeyDown(KeyCode.Alpha2)) 105 { 106 anim.SetTrigger("hurt"); 107 if (direction == 1) 108 rb.AddForce(new Vector2(-5f, 1f), ForceMode2D.Impulse); 109 else 110 rb.AddForce(new Vector2(5f, 1f), ForceMode2D.Impulse); 111 } 112 } 113 void Die() 114 { 115 if (Input.GetKeyDown(KeyCode.Alpha3)) 116 { 117 anim.SetTrigger("die"); 118 alive = false; 119 rb.gravityScale = 0; 120 rb.velocity = Vector2.zero; 121 122 123 } 124 } 125 void Restart() 126 { 127 if (Input.GetKeyDown(KeyCode.Alpha0)) 128 { 129 anim.SetTrigger("idle"); 130 alive = true; 131 } 132 } 133 134 } 135}
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/19 05:09
2021/05/19 05:30
2021/05/19 08:32