|
|
@@ -247,18 +247,23 @@ public class Wolf : TargetAnimal
|
|
|
Quaternion ambushQuaStart = transform.rotation;
|
|
|
Vector3 rotateDir = hunterPos - transform.position; rotateDir.y = 0;
|
|
|
Quaternion ambushQuaEnd = Quaternion.FromToRotation(Vector3.forward, rotateDir);
|
|
|
+ float needRotateAngle = Quaternion.Angle(ambushQuaStart, ambushQuaEnd);
|
|
|
this.agent.avoidancePriority = 0;
|
|
|
- state.ambushRotating = true;
|
|
|
- seq.Append(DOTween.To(() => 0f, value => {
|
|
|
- transform.rotation = Quaternion.Lerp(ambushQuaStart, ambushQuaEnd, value);
|
|
|
- }, 1f, Quaternion.Angle(ambushQuaStart, ambushQuaEnd) / 180f * 0.5f));
|
|
|
+ if (needRotateAngle > 20) {
|
|
|
+ state.ambushRotating = true;
|
|
|
+ seq.Append(DOTween.To(() => 0f, value => {
|
|
|
+ transform.rotation = Quaternion.Lerp(ambushQuaStart, ambushQuaEnd, value);
|
|
|
+ }, 1f, needRotateAngle / 180f * 0.5f));
|
|
|
+ } else {
|
|
|
+ ambushQuaEnd = ambushQuaStart;
|
|
|
+ }
|
|
|
seq.AppendCallback(delegate() {
|
|
|
state.ambushRotating = false;
|
|
|
if (needAmbush) state.ambushing = true;
|
|
|
});
|
|
|
if (needAmbush) {
|
|
|
seq.Append(DOTween.To(() => 0f, value => {
|
|
|
- LookAtHunter();
|
|
|
+ this.transform.rotation = ambushQuaEnd;
|
|
|
}, 1f, 2f));
|
|
|
}
|
|
|
seq.AppendCallback(delegate() {
|