質問編集履歴

1

スクリプトを追加しました

2021/04/04 14:57

投稿

starfish-nuru2
starfish-nuru2

スコア0

test CHANGED
File without changes
test CHANGED
@@ -14,6 +14,124 @@
14
14
 
15
15
 
16
16
 
17
+ ### 該当のソースコード
18
+
19
+
20
+
21
+ ```ここに言語名を入力
22
+
23
+ private void FixedUpdate()
24
+
25
+ {
26
+
27
+ isGrounded = groundChecker.GetIsGrounded(); //接地判定です
28
+
29
+ SetXSpeed();
30
+
31
+ SetYSpeed(); // それぞれxSpeedとySpeedを変更します
32
+
33
+ rb.velocity = new Vector2(xSpeed, ySpeed);
34
+
35
+ }
36
+
37
+ private void SetXSpeed()
38
+
39
+ {
40
+
41
+ xSpeed += acceleration * Time.deltaTime;
42
+
43
+ }
44
+
45
+ private void SetYSpeed()
46
+
47
+ {
48
+
49
+      // Updateでジャンプ用の入力を受け付けるとここを通ります
50
+
51
+ if (action == Action.Jump) 
52
+
53
+ {
54
+
55
+ //ジャンプ開始
56
+
57
+ if (isGrounded && !isJumping)
58
+
59
+ {
60
+
61
+ jumpTimer = 0.0f;
62
+
63
+ fallTimer = 0.0f; //AnimationCurve用のタイマーです
64
+
65
+ ySpeed = jumpSpeed;
66
+
67
+ isJumping = true; //実際にジャンプしているかどうか
68
+
69
+ }
70
+
71
+ //上昇中
72
+
73
+ else if (!isGrounded && isJumping && ySpeed > 0)
74
+
75
+ {
76
+
77
+ jumpTimer += Time.deltaTime;
78
+
79
+ ySpeed *= jumpCurve.Evaluate(jumpTimer);
80
+
81
+ }
82
+
83
+ //下降中
84
+
85
+ else if (!isGrounded && isJumping && ySpeed <= 0)
86
+
87
+ {
88
+
89
+ fallTimer += Time.deltaTime;
90
+
91
+ ySpeed = -fallSpeed * fallCurve.Evaluate(fallTimer);
92
+
93
+ }
94
+
95
+ //ジャンプ終了
96
+
97
+ else if (isGrounded && isJumping)
98
+
99
+ {
100
+
101
+ isJumping = false;
102
+
103
+ SetAction(Action.Normal);
104
+
105
+ animator.SetBool("Jump", false);
106
+
107
+ jumpTimer = 0.0f;
108
+
109
+ fallTimer = 0.0f;
110
+
111
+ }
112
+
113
+ }
114
+
115
+ //接地中
116
+
117
+ else
118
+
119
+ {
120
+
121
+ ySpeed = -fallSpeed;
122
+
123
+ }
124
+
125
+ }
126
+
127
+ ```
128
+
129
+ 以下順にJumpCurve,FallCurveです
130
+
131
+ ![JumpCurveです](2ad822375ebfd9196e33c8b67a900ed7.png)
132
+
133
+ ![FallCurveです](1ba3d77ff8e3112d935d0529f3f3270c.png)
134
+
17
135
 
18
136
 
19
137
  ### 補足情報(FW/ツールのバージョンなど)