質問編集履歴

3

スクリプト修正 質問内容調整

2020/06/08 06:08

投稿

sanshi5
sanshi5

スコア18

test CHANGED
File without changes
test CHANGED
@@ -164,7 +164,7 @@
164
164
 
165
165
 
166
166
 
167
- 自己進展があったので追記します。
167
+ ###自己進展があったので追記します。
168
168
 
169
169
  ```
170
170
 
@@ -218,7 +218,7 @@
218
218
 
219
219
 
220
220
 
221
- while (transform.position.y < 3)
221
+ while (transform.position.y < 5)
222
222
 
223
223
  {
224
224
 
@@ -270,7 +270,13 @@
270
270
 
271
271
  ```
272
272
 
273
+
274
+
275
+ これでとりあえず目的の動きがしてる感じがしますが、動作をランニングテストしてます。
276
+
273
- while 条件の数値を手入力してるので、public Vector3 direction = new Vector3(0f, 5f, 0f);を自動で入るように検討中
277
+ while 条件の数値を手入力してるので、public Vector3 direction = new Vector3(0f, 5f, 0f);を自動で入るようにしたほうがいいのか検討中
278
+
279
+ もっといい方法や何かアドバイスあればよろしくお願いいたします。
274
280
 
275
281
 
276
282
 

2

進捗追加スクリプト

2020/06/08 06:08

投稿

sanshi5
sanshi5

スコア18

test CHANGED
File without changes
test CHANGED
@@ -164,6 +164,116 @@
164
164
 
165
165
 
166
166
 
167
+ 自己進展があったので追記します。
168
+
169
+ ```
170
+
171
+ using System.Collections;
172
+
173
+ using System.Collections.Generic;
174
+
175
+ using UnityEngine;
176
+
177
+
178
+
179
+ public class coltin : MonoBehaviour
180
+
181
+ {
182
+
183
+
184
+
185
+ private Rigidbody rb;
186
+
187
+ public float speed = 1.0f;
188
+
189
+ public Vector3 direction = new Vector3(0f, 5f, 0f);
190
+
191
+
192
+
193
+ void Start()
194
+
195
+ {
196
+
197
+ rb = GetComponent<Rigidbody>();
198
+
199
+ // コルーチン開始
200
+
201
+ StartCoroutine("ChangePsition");
202
+
203
+ }
204
+
205
+
206
+
207
+
208
+
209
+ // ポジション変更
210
+
211
+ IEnumerator ChangePsition()
212
+
213
+ {
214
+
215
+ yield return new WaitForSeconds(2);
216
+
217
+ Debug.Log("2秒");
218
+
219
+
220
+
221
+ while (transform.position.y < 3)
222
+
223
+ {
224
+
225
+ float step = speed * Time.deltaTime;
226
+
227
+ rb.MovePosition(Vector3.MoveTowards(transform.position, direction, step));
228
+
229
+ yield return null;
230
+
231
+ //1フレーム待つ
232
+
233
+ }
234
+
235
+ //もう一つのコルーチンを実行する
236
+
237
+ StartCoroutine("ChangePsition2");
238
+
239
+ }
240
+
241
+
242
+
243
+ IEnumerator ChangePsition2()
244
+
245
+ {
246
+
247
+ yield return new WaitForSeconds(2);
248
+
249
+ Debug.Log("2秒");
250
+
251
+ while (transform.position.y > 0.5)
252
+
253
+ {
254
+
255
+ float step = speed * Time.deltaTime;
256
+
257
+ rb.MovePosition(Vector3.MoveTowards(transform.position, -direction, step));
258
+
259
+ yield return null;
260
+
261
+ }
262
+
263
+ //もう一つのコルーチンを実行する
264
+
265
+ StartCoroutine("ChangePsition");
266
+
267
+ }
268
+
269
+ }
270
+
271
+ ```
272
+
273
+ while 条件の数値を手入力してるので、public Vector3 direction = new Vector3(0f, 5f, 0f);を自動で入るように検討中
274
+
275
+
276
+
167
277
  ### 補足情報(FW/ツールのバージョンなど)
168
278
 
169
279
 

1

初心者マークをつけました。

2020/06/08 05:38

投稿

sanshi5
sanshi5

スコア18

test CHANGED
File without changes
test CHANGED
@@ -102,11 +102,11 @@
102
102
 
103
103
  ```
104
104
 
105
+ 現状だと上にあがったままなので、元の位置にもどり
105
106
 
107
+ 上と下それぞれ2秒停止しエレベータのように
106
108
 
107
- 教えていただいたこのソースをもとに、上と下で2秒停止しエレベータのように
108
-
109
- 動かせないか繋ぎのコードを考えています。
109
+ 動かせないかコードを考えています。
110
110
 
111
111
 
112
112