質問編集履歴
1
回答欄に書いてしまった、追記内容をこちらに移動
test
CHANGED
File without changes
|
test
CHANGED
@@ -141,3 +141,89 @@
|
|
141
141
|
2日程、この問題にハマっており変な文章になっているかもしれません。解決方法がおわかりの方ぜひよろしくお願いいたします。
|
142
142
|
|
143
143
|
他に補足情報等必要であればなんでも言ってください。
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
###追記
|
148
|
+
|
149
|
+
```C#
|
150
|
+
|
151
|
+
IEnumerator NpcNormalKaiten()
|
152
|
+
|
153
|
+
{
|
154
|
+
|
155
|
+
nowExecCoroutine = true;
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
//全てのアニメーションをリセット
|
160
|
+
|
161
|
+
moveResaet();
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
//初期値からいくつ回転したのかを調べる
|
166
|
+
|
167
|
+
//float angle = Quaternion.Angle(transform.rotation, target.rotation);
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
//今見ている方向
|
172
|
+
|
173
|
+
float nowLook = transform.localEulerAngles.x;
|
174
|
+
|
175
|
+
//ターゲットの方向
|
176
|
+
|
177
|
+
float targetLook = target.transform.localEulerAngles.x;
|
178
|
+
|
179
|
+
//次に見る方向
|
180
|
+
|
181
|
+
float nextLook = nowLook - targetLook;
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
//ターゲットへ旋回
|
186
|
+
|
187
|
+
rb.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation
|
188
|
+
|
189
|
+
(targetP.transform.position - transform.position), Time.deltaTime * 10f);
|
190
|
+
|
191
|
+
//見るだけなので動かない
|
192
|
+
|
193
|
+
rb.velocity = Vector3.zero;
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
if (nextLook >= 340f)
|
198
|
+
|
199
|
+
{
|
200
|
+
|
201
|
+
animator.SetBool("Idle", true);
|
202
|
+
|
203
|
+
}
|
204
|
+
|
205
|
+
else
|
206
|
+
|
207
|
+
{
|
208
|
+
|
209
|
+
animator.SetBool("Walk", true);
|
210
|
+
|
211
|
+
}
|
212
|
+
|
213
|
+
yield return null;
|
214
|
+
|
215
|
+
|
216
|
+
|
217
|
+
nowExecCoroutine = false;
|
218
|
+
|
219
|
+
}
|
220
|
+
|
221
|
+
```
|
222
|
+
|
223
|
+
数字の取得方法がわからなかったので、教えてもらったとおりに角度を取得。
|
224
|
+
|
225
|
+
完全に見たい方向に向いてるときが359fだったので、20fほど余裕を持たせて、それ以上だったら振り向きモーションを動作するようにしました。
|
226
|
+
|
227
|
+
|
228
|
+
|
229
|
+
今回は、もう疲れに疲れ切って、質問に書いたコードが、途中も途中でムチャクチャだったので、回答していただいた方には、本当に申し訳ないと思っております。すいませんでした。
|