回答編集履歴
1
記述部分が間違っていたので修正。
answer
CHANGED
@@ -1,45 +1,2 @@
|
|
1
|
-
```C#
|
2
|
-
IEnumerator NpcNormalKaiten()
|
3
|
-
{
|
4
|
-
nowExecCoroutine = true;
|
5
|
-
|
6
|
-
//全てのアニメーションをリセット
|
7
|
-
moveResaet();
|
8
|
-
|
9
|
-
//初期値からいくつ回転したのかを調べる
|
10
|
-
//float angle = Quaternion.Angle(transform.rotation, target.rotation);
|
11
|
-
|
12
|
-
|
1
|
+
回答では無い物を回答としてしまいました。
|
13
|
-
float nowLook = transform.localEulerAngles.x;
|
14
|
-
//ターゲットの方向
|
15
|
-
float targetLook = target.transform.localEulerAngles.x;
|
16
|
-
|
2
|
+
本文に追記として載せております。
|
17
|
-
float nextLook = nowLook - targetLook;
|
18
|
-
|
19
|
-
//ターゲットへ旋回
|
20
|
-
rb.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation
|
21
|
-
(targetP.transform.position - transform.position), Time.deltaTime * 10f);
|
22
|
-
//見るだけなので動かない
|
23
|
-
rb.velocity = Vector3.zero;
|
24
|
-
|
25
|
-
if (nextLook >= 340f)
|
26
|
-
{
|
27
|
-
animator.SetBool("Idle", true);
|
28
|
-
}
|
29
|
-
else
|
30
|
-
{
|
31
|
-
animator.SetBool("Walk", true);
|
32
|
-
}
|
33
|
-
yield return null;
|
34
|
-
|
35
|
-
nowExecCoroutine = false;
|
36
|
-
}
|
37
|
-
```
|
38
|
-
数字の取得方法がわからなかったので、教えてもらったとおりに角度を取得。
|
39
|
-
完全に見たい方向に向いてるときが359fだったので、20fほど余裕を持たせて、それ以上だったら振り向きモーションを動作するようにしました。
|
40
|
-
|
41
|
-
今回は、もう疲れに疲れ切って、質問に書いたものが、もう途中も途中だったので回答していただく方には、本当に申し訳ないと思っております。
|
42
|
-
Quaternion.Angle()を使う具体的な方法がわかる方、もしおられましたらご一報ください。
|
43
|
-
|
44
|
-
勉強不足なもので、コレ使ったらできるよ!
|
45
|
-
では、ちょっとわからないので、書き方教えてもらえるとありがたいです。
|