質問編集履歴

1

質問の書き方を理解しておらず間違ってタイトルだけ記入して投稿してしまったため再編集です。

2020/12/04 05:21

投稿

hosituka
hosituka

スコア15

test CHANGED
File without changes
test CHANGED
@@ -2,17 +2,27 @@
2
2
 
3
3
 
4
4
 
5
- ここに質問の内容を詳しく書いてください。
5
+ https://dkrevel.com/makegame-beginner/make-2d-action-jump/
6
-
6
+
7
- (例)PHP(CakePHP)で●●なシステムを作ってい
7
+ このサイトを見本にプログラムをているのでがこのサイトの<高さを調節できるジャンプを作ろう>
8
-
8
+
9
- ■■な機能を実装中に以下エラーメッセージ発生しした。
9
+ 項目できせん
10
10
 
11
11
 
12
12
 
13
13
  ### 発生している問題・エラーメッセージ
14
14
 
15
-
15
+ 矢印キーの上を押すことでジャンプ出来るはずができませんでした。一応
16
+
17
+ コンソールは見ましたがエラーは発生しておりませんUnityのバージョンは2020年の1.14fです。
18
+
19
+ unityのEdit>ProjectSettingから左メニューのInputを選択して、Verticalの中
20
+
21
+ のPositive Buttonが違うのかと思い確認しましたがちゃんとupになっていました
22
+
23
+
24
+
25
+ 誰か解決案くださるとありがたいです
16
26
 
17
27
  ```
18
28
 
@@ -30,6 +40,174 @@
30
40
 
31
41
  ソースコード
32
42
 
43
+ using System.Collections;
44
+
45
+ using System.Collections.Generic;
46
+
47
+ using UnityEngine;
48
+
49
+
50
+
51
+ public class player : MonoBehaviour
52
+
53
+ {
54
+
55
+ //インスペクターで設定する
56
+
57
+ public float speed; //速度
58
+
59
+ public float gravity; //重力
60
+
61
+ public float jumpSpeed;//ジャンプする速度
62
+
63
+ public float jumpHeight;//高さ制限
64
+
65
+ public Ground ground; //接地判定
66
+
67
+
68
+
69
+ //プライベート変数
70
+
71
+ private Animator anim = null;
72
+
73
+ private Rigidbody2D rb = null;
74
+
75
+ private bool isGround = false;
76
+
77
+ private bool isJump = false;
78
+
79
+ private float jumpPos = 0.0f;
80
+
81
+
82
+
83
+ void Start()
84
+
85
+ {
86
+
87
+ //コンポーネントのインスタンスを捕まえる
88
+
89
+ anim = GetComponent<Animator>();
90
+
91
+ rb = GetComponent<Rigidbody2D>();
92
+
93
+ }
94
+
95
+
96
+
97
+ void FixedUpdate()
98
+
99
+ {
100
+
101
+ //接地判定を得る
102
+
103
+ isGround = ground.IsGround();
104
+
105
+
106
+
107
+ //キー入力されたら行動する
108
+
109
+ float horizontalKey = Input.GetAxis("Horizontal");
110
+
111
+ float xSpeed = 0.0f;
112
+
113
+ float ySpeed = -gravity;
114
+
115
+ float verticalKey = Input.GetAxis("Vertical");
116
+
117
+
118
+
119
+ if (isGround)
120
+
121
+ {
122
+
123
+ if (verticalKey > 0)
124
+
125
+ {
126
+
127
+ ySpeed = jumpSpeed;
128
+
129
+ jumpPos = transform.position.y; //ジャンプした位置を記録する
130
+
131
+ isJump = true;
132
+
133
+ }
134
+
135
+ else
136
+
137
+ {
138
+
139
+ isJump = false;
140
+
141
+ }
142
+
143
+ }
144
+
145
+ else if (isJump)
146
+
147
+ {
148
+
149
+ //上ボタンを押されている。かつ、現在の高さがジャンプした位置から自分の決めた位置より下ならジャンプを継続する
150
+
151
+ if (verticalKey > 0 && jumpPos + jumpHeight > transform.position.y)
152
+
153
+ {
154
+
155
+ ySpeed = jumpSpeed;
156
+
157
+ }
158
+
159
+ else
160
+
161
+ {
162
+
163
+ isJump = false;
164
+
165
+ }
166
+
167
+ }
168
+
169
+ if (horizontalKey > 0)
170
+
171
+ {
172
+
173
+ transform.localScale = new Vector3(2, 2, 1);
174
+
175
+ anim.SetBool("走る", true);
176
+
177
+ xSpeed = speed;
178
+
179
+ }
180
+
181
+ else if (horizontalKey < 0)
182
+
183
+ {
184
+
185
+ transform.localScale = new Vector3(-2, 2, 1);
186
+
187
+ anim.SetBool("走る", true);
188
+
189
+ xSpeed = -speed;
190
+
191
+ }
192
+
193
+ else
194
+
195
+ {
196
+
197
+ anim.SetBool("走る", false);
198
+
199
+ xSpeed = 0.0f;
200
+
201
+ }
202
+
203
+ rb.velocity = new Vector2(xSpeed, ySpeed);
204
+
205
+ }
206
+
207
+ }
208
+
209
+
210
+
33
211
  ```
34
212
 
35
213