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