質問編集履歴

2

解決しました。

2018/06/23 13:58

投稿

Herowin
Herowin

スコア9

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,4 @@
1
1
  閲覧ありがとうございます。
2
-
3
- Unityやってて困ったので質問させてもらいます。
4
2
 
5
3
  ランダムな位置を目標地点として設定し、そこに向かって進んで
6
4
 

1

解決しました

2018/06/23 13:58

投稿

Herowin
Herowin

スコア9

test CHANGED
@@ -1 +1 @@
1
- 1秒止まってから新しい目標地点を設定し、同じことを繰り返す所で困ってます
1
+ 同じことを繰り返す所で困ってます
test CHANGED
@@ -12,98 +12,4 @@
12
12
 
13
13
 
14
14
 
15
- ソースコード
16
-
17
-
18
-
19
- using System.Collections;
20
-
21
- using System.Collections.Generic;
22
-
23
- using UnityEngine;
24
-
25
-
26
-
27
- public class Randamu : MonoBehaviour {
28
-
29
-
30
-
31
-
32
-
33
- // プレイヤーの速度
34
-
35
- public float speed = 5f;
36
-
37
-
38
-
39
- public float rotationSmooth = 1f;
40
-
41
- public Vector3 targetPosition;
42
-
43
-
44
-
45
- public float changeTargetSqrDistance = 40f;
46
-
47
-
48
-
49
- void Start()
15
+ 追記、無事解決しました。
50
-
51
- {
52
-
53
- targetPosition = GetRandomPositionOnLevel();
54
-
55
- }
56
-
57
-
58
-
59
- void Update()
60
-
61
- {
62
-
63
-
64
-
65
- // 現在地から目標地点までの距離を取得、短かったならもう一度目標地点を設定しなおす
66
-
67
- float sqrDistanceToTarget = Vector3.SqrMagnitude(transform.position - targetPosition);
68
-
69
- if (sqrDistanceToTarget < changeTargetSqrDistance)
70
-
71
- {
72
-
73
- targetPosition = GetRandomPositionOnLevel();
74
-
75
- }
76
-
77
-
78
-
79
- // 目標地点の方向を向く
80
-
81
- Quaternion targetRotation = Quaternion.LookRotation(targetPosition - transform.position);
82
-
83
- transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * rotationSmooth);
84
-
85
-
86
-
87
- // 前方に進む
88
-
89
- transform.Translate(Vector3.forward * speed * Time.deltaTime);
90
-
91
- }
92
-
93
-
94
-
95
- public Vector3 GetRandomPositionOnLevel()
96
-
97
- {
98
-
99
- // 動き回る範囲
100
-
101
- float levelSize = 8f;
102
-
103
-
104
-
105
- return new Vector3(Random.Range(-levelSize, levelSize), 0, Random.Range(-levelSize, levelSize));
106
-
107
- }
108
-
109
- }