回答編集履歴
1
回転量算出の誤りを訂正、角速度上限について追記
test
CHANGED
@@ -18,13 +18,9 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
// relativeRotationの
|
21
|
+
// relativeRotationのwから回転量が得られ...
|
22
22
|
|
23
|
-
var
|
23
|
+
var angle = 2.0f * math.acos(math.saturate(relativeRotation.value.w));
|
24
|
-
|
25
|
-
var cosTheta = relativeRotation.value.w;
|
26
|
-
|
27
|
-
var angle = math.atan2(sinTheta, cosTheta);
|
28
24
|
|
29
25
|
|
30
26
|
|
@@ -40,4 +36,26 @@
|
|
40
36
|
|
41
37
|
|
42
38
|
|
39
|
+
![図1](5f50edbc49029fd3e749017de183c10e.gif)
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
なお、上図ではターゲットを素早く動かしても少々ゆったり追従する動きになっています。
|
44
|
+
|
45
|
+
これは`Rigidbody`の角速度がデフォルトでは7ラジアン/秒までに制限されているためでして、`Start`あたりで最大角速度を無制限にしてやれば...
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
```lang-csharp
|
50
|
+
|
51
|
+
rigidbody.maxAngularVelocity = Mathf.Infinity;
|
52
|
+
|
53
|
+
```
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
下図のように一瞬で追従するようになるかと思います。
|
58
|
+
|
59
|
+
|
60
|
+
|
43
|
-
![図](
|
61
|
+
![図2](ca1b2083d06570ec24c89440bf6d58e7.gif)
|