|
@@ -112,6 +112,7 @@ public class Wolf : TargetAnimal
|
|
|
CancelLockTarget();
|
|
CancelLockTarget();
|
|
|
state.ResetActionState();
|
|
state.ResetActionState();
|
|
|
state.lockingTarget = true;
|
|
state.lockingTarget = true;
|
|
|
|
|
+ needAmbush = false;
|
|
|
} else {
|
|
} else {
|
|
|
CancelLockTarget(1);
|
|
CancelLockTarget(1);
|
|
|
RunAwayFromHunter();
|
|
RunAwayFromHunter();
|
|
@@ -227,6 +228,7 @@ public class Wolf : TargetAnimal
|
|
|
this.transform.LookAt(hunterPosition);
|
|
this.transform.LookAt(hunterPosition);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ bool needAmbush = true;
|
|
|
//攻击
|
|
//攻击
|
|
|
void Attack() {
|
|
void Attack() {
|
|
|
state.ResetActionState();
|
|
state.ResetActionState();
|
|
@@ -252,16 +254,19 @@ public class Wolf : TargetAnimal
|
|
|
}, 1f, Quaternion.Angle(ambushQuaStart, ambushQuaEnd) / 180f * 0.5f));
|
|
}, 1f, Quaternion.Angle(ambushQuaStart, ambushQuaEnd) / 180f * 0.5f));
|
|
|
seq.AppendCallback(delegate() {
|
|
seq.AppendCallback(delegate() {
|
|
|
state.ambushRotating = false;
|
|
state.ambushRotating = false;
|
|
|
- state.ambushing = true;
|
|
|
|
|
|
|
+ if (needAmbush) state.ambushing = true;
|
|
|
});
|
|
});
|
|
|
- seq.Append(DOTween.To(() => 0f, value => {
|
|
|
|
|
- LookAtHunter();
|
|
|
|
|
- }, 1f, 2f));
|
|
|
|
|
|
|
+ if (needAmbush) {
|
|
|
|
|
+ seq.Append(DOTween.To(() => 0f, value => {
|
|
|
|
|
+ LookAtHunter();
|
|
|
|
|
+ }, 1f, 2f));
|
|
|
|
|
+ }
|
|
|
seq.AppendCallback(delegate() {
|
|
seq.AppendCallback(delegate() {
|
|
|
if (state.dead) {
|
|
if (state.dead) {
|
|
|
seq.Kill();
|
|
seq.Kill();
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
+ needAmbush = true;
|
|
|
state.ambushing = false;
|
|
state.ambushing = false;
|
|
|
state.attackA = true;
|
|
state.attackA = true;
|
|
|
#region //起点和终点计算
|
|
#region //起点和终点计算
|
|
@@ -327,8 +332,8 @@ public class Wolf : TargetAnimal
|
|
|
// needDistance = 2;
|
|
// needDistance = 2;
|
|
|
// canAttackID = "B";
|
|
// canAttackID = "B";
|
|
|
// } else {
|
|
// } else {
|
|
|
- displace = Quaternion.AngleAxis(Random.Range(-18f, 18f), Vector3.up) * displace;
|
|
|
|
|
- needDistance = 10;
|
|
|
|
|
|
|
+ displace = Quaternion.AngleAxis(Random.Range(-33f, 33f), Vector3.up) * displace;
|
|
|
|
|
+ needDistance = 8.8f;
|
|
|
canAttackID = "A";
|
|
canAttackID = "A";
|
|
|
// }
|
|
// }
|
|
|
Vector3 newPos = animalsBaseT.position + displace * needDistance;
|
|
Vector3 newPos = animalsBaseT.position + displace * needDistance;
|