実現したいこと
・スペースキーを押してジャンプできる
・スペースキーを押す長さでジャンプの高さが変わる
・矢印キーを押すとキャラクターが左右に移動する
・進行方向にキャラクターが振り向く
前提
Unityで横スクロールアクションゲームを作ろうとしている初心者です。
複数のサイト様を参考にしながらコードを書いています。
発生している問題・エラーメッセージ
Assets\jump.cs(64,10): error CS0111: Type 'PlayerControl' already defines a member called 'FixedUpdate' with the same parameter types
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class PlayerControl : MonoBehaviour 6{ 7[SerializeField] 8 float jumpSpeed = 7f; 9[SerializeField] 10 float maxFallSpeed = 20f; 11[SerializeField] 12 float gravity = 15f; 13 private float x_val; 14 private float speed; 15 public float inputSpeed; 16 17 18 bool minJumpFlag = false; 19 20 Vector3 oldPosition; 21 22 Vector3 velocity; 23 24 25 Rigidbody2D rigidbody2D; 26 27 void Update() 28 { 29 if (Input.GetKeyDown("space")) 30 { 31 inputJumpKey = true; 32 } 33 34 if (Input.GetKeyUp("space")) 35 36 { 37 inputJumpKey = false; 38 } 39 } 40 41 void FixedUpdate() 42 { 43 44 if (x_val == 0) 45 { 46 speed = 0; 47 } 48 49 else if (x_val > 0) 50 { 51 speed = inputSpeed; 52 transform.localScale = new Vector3(0.5f, 0.5f, 1); 53 } 54 55 else if (x_val < 0) 56 { 57 speed = inputSpeed * -1; 58 transform.localScale = new Vector3(-0.5f, 0.5f, 1); 59 } 60 61 rb2d.velocity = new Vector2(speed, rb2d.velocity.y); 62 } 63 64 void FixedUpdate() 65 { 66 Vector3 moveDirection = Vector3.zero; 67 68 moveDirection += CalcJumping(moveDirection); 69 70 rigidbody2D.Move(moveDirection * Time.deltaTime); 71 72 velocity = (transform.position - oldPosition) / Time.deltaTime; 73 74 if (rigidbody2D.isGrounded) 75 { 76 minJumpFlag = false; 77 } 78 } 79 80 Vector2 CalcJumping(Vector3 moveDirection) 81 { 82 if (inputSpaceKey && rigidbody2D.isGrounded) 83 { 84 velocity.y = jumpSpeed; 85 } 86 87 if (!inputSpaceKey && !rigidbody2D.isGrounded && !minJumpFlag) 88 { 89 if (0 <= velocity.y) 90 { 91 velocity.y = 0; 92 } 93 minJumpFlag = true; 94 95 } 96 97 moveDirection.y = velocity.y - gravity * Time.deltaTime; 98 moveDirection.y = Mathf.Max(moveDirection.y, -maxFallSpeed); 99 100 return moveDirection; 101 } 102 103 104}
試したこと
少し前は同じようなエラーで’FixedUpdate’が’Update’になっているエラーも出ていましたが改行したり{}を付け足したりしていたら知らない間に消えていました。
このエラーは消えなかったのでFixedUpdateが二つあるのがいけないのかと思い二つ目(ジャンプ機能に関わる方)を消したらむしろエラーが増えたので戻しました。
補足情報(FW/ツールのバージョンなど)
VisualStudio2022とUnity Hub3.5.2を使用しています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。