質問編集履歴

3

変数名を追記前と揃える

2020/06/30 02:28

投稿

tot_
tot_

スコア2

test CHANGED
File without changes
test CHANGED
@@ -192,7 +192,7 @@
192
192
 
193
193
 
194
194
 
195
- public class FuuController : MonoBehaviour
195
+ public class CharacterController : MonoBehaviour
196
196
 
197
197
  {
198
198
 
@@ -230,7 +230,7 @@
230
230
 
231
231
  {
232
232
 
233
- if (walkStop) animator.Play("FuuFaceForword"); // 正面向いて止まる
233
+ if (walkStop) animator.Play("FaceForword"); // 正面向いて止まる
234
234
 
235
235
  else Walk(); // 左右に歩く
236
236
 
@@ -272,7 +272,7 @@
272
272
 
273
273
  Debug.Log("右へ");
274
274
 
275
- animator.Play("FuuRight");
275
+ animator.Play("Right");
276
276
 
277
277
  move = 0.01f;
278
278
 
@@ -284,7 +284,7 @@
284
284
 
285
285
  Debug.Log("左へ");
286
286
 
287
- animator.Play("FuuLeft");
287
+ animator.Play("Left");
288
288
 
289
289
  move = -0.01f;
290
290
 

2

追記箇所の説明追記

2020/06/30 02:28

投稿

tot_
tot_

スコア2

test CHANGED
File without changes
test CHANGED
@@ -172,7 +172,13 @@
172
172
 
173
173
 
174
174
 
175
+ 追記:
176
+
175
- ↓↓↓
177
+ ↓↓↓
178
+
179
+ Walk()実行を毎フレームでフラグ判定するよう修正してみました!
180
+
181
+ 次は、アニメーションが切り替わる前に移動が左右への実行されてしまうようで困っています。。
176
182
 
177
183
 
178
184
 

1

Walk()実行を毎フレームでフラグ判定するよう修正してみました。次は、アニメーションが切り替わる前に移動が左右への実行されてしまうようで困っています

2020/06/28 09:52

投稿

tot_
tot_

スコア2

test CHANGED
File without changes
test CHANGED
@@ -172,6 +172,132 @@
172
172
 
173
173
 
174
174
 
175
+ ↓↓↓
176
+
177
+
178
+
179
+ ```c#
180
+
181
+ using System.Collections;
182
+
183
+ using System.Collections.Generic;
184
+
185
+ using UnityEngine;
186
+
187
+
188
+
189
+ public class FuuController : MonoBehaviour
190
+
191
+ {
192
+
193
+ Animator animator;
194
+
195
+
196
+
197
+ float move = 0.01f;
198
+
199
+ bool walkStop;
200
+
201
+
202
+
203
+ float timer;
204
+
205
+ public float changeTime = 5.0f;
206
+
207
+
208
+
209
+ void Start()
210
+
211
+ {
212
+
213
+ animator = GetComponent<Animator>();
214
+
215
+ timer = changeTime;
216
+
217
+ walkStop = false;
218
+
219
+ }
220
+
221
+
222
+
223
+ void Update()
224
+
225
+ {
226
+
227
+ if (walkStop) animator.Play("FuuFaceForword"); // 正面向いて止まる
228
+
229
+ else Walk(); // 左右に歩く
230
+
231
+
232
+
233
+ // 設定した時間になったら正面を向くか歩くかのフラグを切り替え ーーーーーーー
234
+
235
+ timer -= Time.deltaTime;
236
+
237
+ if (timer < 0)
238
+
239
+ {
240
+
241
+ timer = changeTime; // タイマーリセット
242
+
243
+ if (walkStop) walkStop = false;
244
+
245
+ else walkStop = true;
246
+
247
+ }
248
+
249
+ }
250
+
251
+
252
+
253
+ void Walk()
254
+
255
+ {
256
+
257
+ Vector3 pos = transform.position;
258
+
259
+ pos.x += move;
260
+
261
+
262
+
263
+ if (pos.x < -2.0f)
264
+
265
+ {
266
+
267
+ Debug.Log("右へ");
268
+
269
+ animator.Play("FuuRight");
270
+
271
+ move = 0.01f;
272
+
273
+ }
274
+
275
+ if (pos.x > 2.0f)
276
+
277
+ {
278
+
279
+ Debug.Log("左へ");
280
+
281
+ animator.Play("FuuLeft");
282
+
283
+ move = -0.01f;
284
+
285
+ }
286
+
287
+ // TODO:右か左かのAnimationがPlayされる前に移動を開始してしまうのを改善したい
288
+
289
+ transform.position = pos;
290
+
291
+ }
292
+
293
+ }
294
+
295
+ ```
296
+
297
+
298
+
299
+
300
+
175
301
  ### 試したこと
176
302
 
177
303