質問編集履歴

4

ほえ

2021/01/07 00:04

投稿

Um_kok
Um_kok

スコア39

test CHANGED
File without changes
test CHANGED
@@ -123,3 +123,117 @@
123
123
  なので、お力をお貸しいただけないでしょうか?
124
124
 
125
125
  解説やコメントなど加えてくださるとありがたいです。
126
+
127
+
128
+
129
+
130
+
131
+
132
+
133
+ ーーーーーーーーーーーーーーー 修正後---------------------------------
134
+
135
+ ```C#
136
+
137
+
138
+
139
+ using System.Collections;
140
+
141
+ using System.Collections.Generic;
142
+
143
+ using UnityEngine;
144
+
145
+
146
+
147
+ public class CarContrl : MonoBehaviour
148
+
149
+ {
150
+
151
+
152
+
153
+
154
+
155
+ // 車のモデル  注意  子オブジェクトです。
156
+
157
+ [SerializeField] private Transform modelPos;
158
+
159
+ void Update()
160
+
161
+ {
162
+
163
+ if (Input.GetKeyDown(KeyCode.Space))
164
+
165
+ {
166
+
167
+ print("スペースを押した");
168
+
169
+ StartCoroutine(CarJump());
170
+
171
+ }
172
+
173
+ }
174
+
175
+
176
+
177
+
178
+
179
+
180
+
181
+ }
182
+
183
+ /// <summary>
184
+
185
+ /// 車をジャンプする
186
+
187
+ /// </summary>
188
+
189
+ private IEnumerator CarJump()
190
+
191
+ {
192
+
193
+ print("ジャンプ");
194
+
195
+ var CarJumpPos = 0;
196
+
197
+ var CarJumpMax = 50;
198
+
199
+ var CarJumpPower = 2;
200
+
201
+
202
+
203
+ while (CarJumpPos < CarJumpMax)
204
+
205
+ {
206
+
207
+ CarJumpPos += CarJumpPower;
208
+
209
+ modelPos.transform.localPosition
210
+
211
+ += new Vector3(transform.localPosition.x, transform.localPosition.y + CarJumpPower, transform.localPosition.z);
212
+
213
+ print("ジャンプしている");
214
+
215
+ yield return null;
216
+
217
+ }
218
+
219
+
220
+
221
+ while (CarJumpPos > 0)
222
+
223
+ {
224
+
225
+ CarJumpPos -= CarJumpPower;
226
+
227
+ modelPos.transform.localPosition -= new Vector3(transform.localPosition.x, transform.localPosition.y + CarJumpPower, transform.localPosition.z);
228
+
229
+ }
230
+
231
+ }
232
+
233
+ }
234
+
235
+ ```
236
+
237
+ これで動くようにはなったのですが、Z軸方向に飛んでしまいます。
238
+
239
+ 何故でしょうか?ご意見ください。他にいいコードの書き方を教えてくだされば幸いです。

3

2021/01/07 00:04

投稿

Um_kok
Um_kok

スコア39

test CHANGED
File without changes
test CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
  print("スペースを押した");
42
42
 
43
- // StartCoroutine(CarJump());
43
+ StartCoroutine(CarJump());
44
44
 
45
45
  }
46
46
 

2

せいや

2021/01/06 11:25

投稿

Um_kok
Um_kok

スコア39

test CHANGED
File without changes
test CHANGED
@@ -116,7 +116,7 @@
116
116
 
117
117
  **注意なのですが、フィールドの modelPos というのは子オブジェクトなためこう言うコードにしております。(親に車を動かすコードが書いてあります。)**
118
118
 
119
- スペースを押してみても、動きませんが、コンソールにはジャンプている、と出
119
+ スペースを押してみても、動きませんが、コンソールにはスペースを押たしかでせん
120
120
 
121
121
  コードが見にくいのですが、あまりいいやり方ではないです。うまいコードが欠けていないのはわかっております。
122
122
 

1

おういえす

2021/01/06 09:00

投稿

Um_kok
Um_kok

スコア39

test CHANGED
File without changes
test CHANGED
@@ -114,7 +114,7 @@
114
114
 
115
115
  コードの通り、スペースを押したら、一定値まで上がり、そのあと0に戻るというものです。
116
116
 
117
- 注意なのですが、フィールドの modelPos というのは子オブジェクトなためこう言うコードにしております。(親に車を動かすコードが書いてあります。) 
117
+ **注意なのですが、フィールドの modelPos というのは子オブジェクトなためこう言うコードにしております。(親に車を動かすコードが書いてあります。)**
118
118
 
119
119
  スペースを押してみても、動きませんが、コンソールにはジャンプしている、と出ます。
120
120