|
|
@@ -4,24 +4,14 @@ using System.Collections;
|
|
|
using System.Collections.Generic;
|
|
|
using UnityEngine;
|
|
|
|
|
|
-public enum EnemyState
|
|
|
+public enum TargetType
|
|
|
{
|
|
|
- Idle = 0,
|
|
|
- Walk = 2,
|
|
|
- Rise = 3,//空中上升
|
|
|
- Fall = 4,//空中下落
|
|
|
- Hurt = 5,
|
|
|
- Attack = 6,
|
|
|
- Die = 7,
|
|
|
-}
|
|
|
-
|
|
|
-public enum EnemyTargetType
|
|
|
-{
|
|
|
- All = 0,
|
|
|
+ None = 0,
|
|
|
Demonic = 1,
|
|
|
- LowHPDemonic = 2,
|
|
|
- Tower = 3,
|
|
|
- Player = 4,
|
|
|
+ Tower = 2,
|
|
|
+ Player = 3,
|
|
|
+ Enemy = 4,
|
|
|
+ EnemyTower = 5,
|
|
|
}
|
|
|
|
|
|
public enum SearchState
|
|
|
@@ -31,139 +21,85 @@ public enum SearchState
|
|
|
InAttackScope = 2,//目标在攻击范围内
|
|
|
}
|
|
|
|
|
|
-public class Enemy : MonoBehaviour
|
|
|
+public class Enemy : MoveCharacter
|
|
|
{
|
|
|
- public SkeletonMecanim mecanim;
|
|
|
- public Skeleton skeleton;
|
|
|
-
|
|
|
- public Animator ani;
|
|
|
- public Animator aniCollider;
|
|
|
- public Rigidbody rb;
|
|
|
- public Foot foot;
|
|
|
- public Transform bodyTrans;
|
|
|
- public UIHP uiHp;
|
|
|
public SearchTrigger searchTrigger;
|
|
|
-
|
|
|
- public float extraRiseGravity = 0; //上升时额外重力加速度
|
|
|
- public float extraFallGravity = -10; //下落时额外重力加速度
|
|
|
public float jumpSpeed = 10;
|
|
|
- //public float airJumpSpeed = 10;
|
|
|
- public float maxMoveSpeed = 5;
|
|
|
- //public float moveAcc = 5f;
|
|
|
- //public float airMoveAcc = 3f;
|
|
|
-
|
|
|
- public EnemyState state;
|
|
|
public SearchState searchState;
|
|
|
- [HideInInspector]
|
|
|
- public float hurtKeepTime;
|
|
|
- public float totalHurtKeepTime = 0.5f;
|
|
|
- [HideInInspector]
|
|
|
- public float attackTime;
|
|
|
- public float totalAttack1Time = 0.5f;
|
|
|
public float totalAttack2Time = 0.5f;
|
|
|
-
|
|
|
- public List<EnemyTargetType> targetTypes;
|
|
|
-
|
|
|
- public bool isDie = false;
|
|
|
- public int totalHp = 100;
|
|
|
- public int hp;
|
|
|
- public List<AttackInfo> attack1Infos, attack2Infos;
|
|
|
- public List<AttackTrigger> attackTriggers;
|
|
|
+ public List<TargetType> targetTypes;
|
|
|
+ public List<AttackInfo> attack2Infos;
|
|
|
public float attackDistance;
|
|
|
public bool canFly = false;
|
|
|
public bool canHitFly = false;
|
|
|
|
|
|
- public Demonic targetDemonic;
|
|
|
- public Tower targetTower;
|
|
|
- public PlayerController targetPlayer;
|
|
|
+ public Character targetCharacter;
|
|
|
|
|
|
private void Awake()
|
|
|
{
|
|
|
- if (!mecanim)
|
|
|
- {
|
|
|
- mecanim = GetComponentInChildren<SkeletonMecanim>();
|
|
|
- skeleton = mecanim.skeleton;
|
|
|
- }
|
|
|
- if (!ani)
|
|
|
- {
|
|
|
- ani = GetComponentInChildren<Animator>();
|
|
|
- }
|
|
|
+ Init();
|
|
|
Debug.Log("测试");
|
|
|
- BeCreate(100);
|
|
|
+ totalHp = 100;
|
|
|
+ Reload();
|
|
|
}
|
|
|
|
|
|
- private void FixedUpdate()
|
|
|
+ public override void Init()
|
|
|
{
|
|
|
- OnSearchState();
|
|
|
- OnState();
|
|
|
+ base.Init();
|
|
|
}
|
|
|
|
|
|
- public void Turn()
|
|
|
+ public override void Reload()
|
|
|
{
|
|
|
- bodyTrans.localScale = new Vector3(-bodyTrans.localScale.x, bodyTrans.localScale.y, bodyTrans.localScale.z);
|
|
|
+ base.Reload();
|
|
|
+ ChangeSearchState(SearchState.NoTarget);
|
|
|
+ }
|
|
|
+
|
|
|
+ public override void FixedUpdate()
|
|
|
+ {
|
|
|
+ OnSearchState();
|
|
|
+ OnState();
|
|
|
}
|
|
|
|
|
|
public Vector3 GetMoveDir()
|
|
|
{
|
|
|
Vector3 moveDir = Vector3.zero;
|
|
|
- Transform targetTrans = null;
|
|
|
switch (searchState)
|
|
|
{
|
|
|
case SearchState.NoTarget:
|
|
|
moveDir = Vector3.right;
|
|
|
break;
|
|
|
case SearchState.InSearchScope:
|
|
|
- targetTrans = null;
|
|
|
- if (targetDemonic)
|
|
|
- {
|
|
|
- targetTrans = targetDemonic.transform;
|
|
|
- }
|
|
|
- else if (targetTower)
|
|
|
- {
|
|
|
- targetTrans = targetTower.transform;
|
|
|
- }
|
|
|
- else if (targetPlayer)
|
|
|
- {
|
|
|
- targetTrans = targetPlayer.transform;
|
|
|
- }
|
|
|
- if (!targetTrans)
|
|
|
+ if (targetCharacter)
|
|
|
{
|
|
|
- moveDir = Vector3.zero;
|
|
|
- }
|
|
|
- else if (targetTrans.position.x - transform.position.x < 0)
|
|
|
- {
|
|
|
- moveDir = Vector3.left;
|
|
|
+ if (targetCharacter.transform.position.x - transform.position.x < 0)
|
|
|
+ {
|
|
|
+ moveDir = Vector3.left;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ moveDir = Vector3.right;
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- moveDir = Vector3.right;
|
|
|
+ moveDir = Vector3.zero;
|
|
|
}
|
|
|
break;
|
|
|
case SearchState.InAttackScope:
|
|
|
- targetTrans = null;
|
|
|
- if (targetDemonic)
|
|
|
- {
|
|
|
- targetTrans = targetDemonic.transform;
|
|
|
- }
|
|
|
- else if (targetTower)
|
|
|
- {
|
|
|
- targetTrans = targetTower.transform;
|
|
|
- }
|
|
|
- else if (targetPlayer)
|
|
|
+ if (targetCharacter)
|
|
|
{
|
|
|
- targetTrans = targetPlayer.transform;
|
|
|
- }
|
|
|
- if (!targetTrans)
|
|
|
- {
|
|
|
- moveDir = Vector3.zero;
|
|
|
- }
|
|
|
- else if (targetTrans.position.x - transform.position.x < 0)
|
|
|
- {
|
|
|
- moveDir = Vector3.left;
|
|
|
+ if (targetCharacter.transform.position.x - transform.position.x < 0)
|
|
|
+ {
|
|
|
+ moveDir = Vector3.left;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ moveDir = Vector3.right;
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- moveDir = Vector3.right;
|
|
|
+ moveDir = Vector3.zero;
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
@@ -186,15 +122,16 @@ public class Enemy : MonoBehaviour
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- public void OnState()
|
|
|
+ public override void OnState()
|
|
|
{
|
|
|
+ base.OnState();
|
|
|
hurtKeepTime -= Time.deltaTime;
|
|
|
attackTime -= Time.deltaTime;
|
|
|
Vector3 leftDir = GetMoveDir();
|
|
|
bool isAttack = GetAttack();
|
|
|
switch (state)
|
|
|
{
|
|
|
- case EnemyState.Idle:
|
|
|
+ case CharacterState.Idle:
|
|
|
if (isAttack)
|
|
|
{
|
|
|
Attack2();
|
|
|
@@ -204,23 +141,23 @@ public class Enemy : MonoBehaviour
|
|
|
{
|
|
|
if (rb.velocity.y > 0)
|
|
|
{
|
|
|
- ChangeState(EnemyState.Rise);
|
|
|
+ ChangeState(CharacterState.Rise);
|
|
|
break;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- ChangeState(EnemyState.Fall);
|
|
|
+ ChangeState(CharacterState.Fall);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
if (leftDir.x > 0.3f || leftDir.x < -0.3f)
|
|
|
{
|
|
|
- ChangeState(EnemyState.Walk);
|
|
|
+ ChangeState(CharacterState.Run);
|
|
|
break;
|
|
|
}
|
|
|
//rb.velocity = Vector3.zero;
|
|
|
break;
|
|
|
- case EnemyState.Walk:
|
|
|
+ case CharacterState.Run:
|
|
|
if (isAttack)
|
|
|
{
|
|
|
Attack2();
|
|
|
@@ -230,18 +167,18 @@ public class Enemy : MonoBehaviour
|
|
|
{
|
|
|
if (rb.velocity.y > 0)
|
|
|
{
|
|
|
- ChangeState(EnemyState.Rise);
|
|
|
+ ChangeState(CharacterState.Rise);
|
|
|
break;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- ChangeState(EnemyState.Fall);
|
|
|
+ ChangeState(CharacterState.Fall);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
if (leftDir.x < 0.3f && leftDir.x > -0.3f)
|
|
|
{
|
|
|
- ChangeState(EnemyState.Idle);
|
|
|
+ ChangeState(CharacterState.Idle);
|
|
|
break;
|
|
|
}
|
|
|
if (leftDir.x > 0.3f)
|
|
|
@@ -271,10 +208,10 @@ public class Enemy : MonoBehaviour
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
- case EnemyState.Rise:
|
|
|
+ case CharacterState.Rise:
|
|
|
if (rb.velocity.y <= 0)
|
|
|
{
|
|
|
- ChangeState(EnemyState.Fall);
|
|
|
+ ChangeState(CharacterState.Fall);
|
|
|
break;
|
|
|
}
|
|
|
//if (btnJumpPress || cacheJumpTime > 0)
|
|
|
@@ -289,10 +226,10 @@ public class Enemy : MonoBehaviour
|
|
|
|
|
|
rb.velocity += Vector3.up * extraRiseGravity * Time.deltaTime;
|
|
|
break;
|
|
|
- case EnemyState.Fall:
|
|
|
+ case CharacterState.Fall:
|
|
|
if (foot.TrigGround)
|
|
|
{
|
|
|
- ChangeState(EnemyState.Idle);
|
|
|
+ ChangeState(CharacterState.Idle);
|
|
|
break;
|
|
|
}
|
|
|
//if (foot.canStepPlayers.Count > 0)
|
|
|
@@ -323,10 +260,10 @@ public class Enemy : MonoBehaviour
|
|
|
//}
|
|
|
rb.velocity += Vector3.up * extraFallGravity * Time.deltaTime;
|
|
|
break;
|
|
|
- case EnemyState.Hurt:
|
|
|
+ case CharacterState.Hurt:
|
|
|
if (hurtKeepTime <= 0)
|
|
|
{
|
|
|
- ChangeState(EnemyState.Idle);
|
|
|
+ ChangeState(CharacterState.Idle);
|
|
|
break;
|
|
|
}
|
|
|
if (!foot.TrigGround)
|
|
|
@@ -335,10 +272,10 @@ public class Enemy : MonoBehaviour
|
|
|
}
|
|
|
rb.velocity = rb.velocity / 5 * 4;
|
|
|
break;
|
|
|
- case EnemyState.Attack:
|
|
|
+ case CharacterState.Attack:
|
|
|
if (attackTime <= 0)
|
|
|
{
|
|
|
- ChangeState(EnemyState.Idle);
|
|
|
+ ChangeState(CharacterState.Idle);
|
|
|
break;
|
|
|
}
|
|
|
break;
|
|
|
@@ -347,62 +284,62 @@ public class Enemy : MonoBehaviour
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void ChangeState(EnemyState newState)
|
|
|
+ public override void ChangeState(CharacterState newState)
|
|
|
{
|
|
|
switch (state)
|
|
|
{
|
|
|
- case EnemyState.Idle:
|
|
|
+ case CharacterState.Idle:
|
|
|
break;
|
|
|
- case EnemyState.Walk:
|
|
|
+ case CharacterState.Run:
|
|
|
rb.velocity = Vector3.zero;
|
|
|
break;
|
|
|
- case EnemyState.Rise:
|
|
|
+ case CharacterState.Rise:
|
|
|
break;
|
|
|
- case EnemyState.Fall:
|
|
|
+ case CharacterState.Fall:
|
|
|
rb.velocity = Vector3.zero;
|
|
|
break;
|
|
|
- case EnemyState.Hurt:
|
|
|
+ case CharacterState.Hurt:
|
|
|
break;
|
|
|
- case EnemyState.Attack:
|
|
|
+ case CharacterState.Attack:
|
|
|
aniCollider.Play("NotAttack", 1, 0);
|
|
|
break;
|
|
|
- case EnemyState.Die:
|
|
|
+ case CharacterState.Die:
|
|
|
isDie = false;
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
- EnemyState oldState = state;
|
|
|
+ CharacterState oldState = state;
|
|
|
state = newState;
|
|
|
switch (newState)
|
|
|
{
|
|
|
- case EnemyState.Idle:
|
|
|
+ case CharacterState.Idle:
|
|
|
ani.Play("idle", 0, 0);
|
|
|
aniCollider.Play("Idle", 0, 0);
|
|
|
rb.velocity = Vector3.zero;
|
|
|
//animalAni.SetInteger("state", (int)PlayerState.Idle);
|
|
|
break;
|
|
|
- case EnemyState.Walk:
|
|
|
+ case CharacterState.Run:
|
|
|
ani.Play("walk", 0, 0);
|
|
|
aniCollider.Play("Walk", 0, 0);
|
|
|
//animalAni.SetInteger("state", (int)PlayerState.Walk);
|
|
|
break;
|
|
|
- case EnemyState.Rise:
|
|
|
+ case CharacterState.Rise:
|
|
|
aniCollider.Play("Rise", 0, 0);
|
|
|
break;
|
|
|
- case EnemyState.Fall:
|
|
|
+ case CharacterState.Fall:
|
|
|
aniCollider.Play("Fall", 0, 0);
|
|
|
//animalAni.SetInteger("state", (int)PlayerState.Fall);
|
|
|
break;
|
|
|
- case EnemyState.Hurt:
|
|
|
+ case CharacterState.Hurt:
|
|
|
ani.Play("hitted", 0, 0);
|
|
|
aniCollider.Play("Hurt", 0, 0);
|
|
|
hurtKeepTime = totalHurtKeepTime;
|
|
|
//ani.Play("Invincible", 2, 0);
|
|
|
break;
|
|
|
- case EnemyState.Attack:
|
|
|
+ case CharacterState.Attack:
|
|
|
break;
|
|
|
- case EnemyState.Die:
|
|
|
+ case CharacterState.Die:
|
|
|
ani.Play("die", 0, 0);
|
|
|
aniCollider.Play("Die", 0, 0);
|
|
|
isDie = true;
|
|
|
@@ -420,7 +357,7 @@ public class Enemy : MonoBehaviour
|
|
|
|
|
|
public void SetUpSpeed(float speed)
|
|
|
{
|
|
|
- ChangeState(EnemyState.Rise);
|
|
|
+ ChangeState(CharacterState.Rise);
|
|
|
Vector3 velocity = rb.velocity;
|
|
|
Vector3 leftDir = GetMoveDir();
|
|
|
if (leftDir.x > 0.3f)
|
|
|
@@ -459,9 +396,7 @@ public class Enemy : MonoBehaviour
|
|
|
switch (searchState)
|
|
|
{
|
|
|
case SearchState.NoTarget:
|
|
|
- targetDemonic = null;
|
|
|
- targetPlayer = null;
|
|
|
- targetTower = null;
|
|
|
+ targetCharacter = null;
|
|
|
break;
|
|
|
case SearchState.InSearchScope:
|
|
|
break;
|
|
|
@@ -474,85 +409,15 @@ public class Enemy : MonoBehaviour
|
|
|
|
|
|
public bool SearchTarget()
|
|
|
{
|
|
|
- Demonic demonic;
|
|
|
- Tower tower;
|
|
|
- PlayerController player;
|
|
|
- float disDemonic, disTower, disPlayer;
|
|
|
- for (int i = 0; i < targetTypes.Count; i++)
|
|
|
+ targetCharacter = searchTrigger.GetMinDisTarget(targetTypes, canHitFly);
|
|
|
+ if (targetCharacter != null)
|
|
|
{
|
|
|
- switch (targetTypes[i])
|
|
|
- {
|
|
|
- case EnemyTargetType.All:
|
|
|
- demonic = searchTrigger.GetMinDisDemonic(canHitFly, out disDemonic);
|
|
|
- tower = searchTrigger.GetMinDisTower(out disTower);
|
|
|
- player = searchTrigger.GetPlayer(out disPlayer);
|
|
|
- if (disDemonic <= disTower && disDemonic <= disPlayer && demonic != null)
|
|
|
- {
|
|
|
- targetDemonic = demonic;
|
|
|
- targetTower = null;
|
|
|
- targetPlayer = null;
|
|
|
- return true;
|
|
|
- }
|
|
|
- else if (disTower <= disDemonic && disTower <= disPlayer && tower != null)
|
|
|
- {
|
|
|
- targetDemonic = null;
|
|
|
- targetTower = tower;
|
|
|
- targetPlayer = null;
|
|
|
- return true;
|
|
|
- }
|
|
|
- else if (disPlayer <= disDemonic && disPlayer <= disTower && player != null)
|
|
|
- {
|
|
|
- targetDemonic = null;
|
|
|
- targetTower = null;
|
|
|
- targetPlayer = player;
|
|
|
- return true;
|
|
|
- }
|
|
|
- break;
|
|
|
- case EnemyTargetType.Demonic:
|
|
|
- demonic = searchTrigger.GetMinDisDemonic(canHitFly, out disDemonic);
|
|
|
- if (demonic != null)
|
|
|
- {
|
|
|
- targetDemonic = demonic;
|
|
|
- targetTower = null;
|
|
|
- targetPlayer = null;
|
|
|
- return true;
|
|
|
- }
|
|
|
- break;
|
|
|
- case EnemyTargetType.LowHPDemonic:
|
|
|
- demonic = searchTrigger.GetMinHPDemonic(canHitFly);
|
|
|
- if (demonic != null)
|
|
|
- {
|
|
|
- targetDemonic = demonic;
|
|
|
- targetTower = null;
|
|
|
- targetPlayer = null;
|
|
|
- return true;
|
|
|
- }
|
|
|
- break;
|
|
|
- case EnemyTargetType.Tower:
|
|
|
- tower = searchTrigger.GetMinDisTower(out disTower);
|
|
|
- if (tower != null)
|
|
|
- {
|
|
|
- targetDemonic = null;
|
|
|
- targetTower = tower;
|
|
|
- targetPlayer = null;
|
|
|
- return true;
|
|
|
- }
|
|
|
- break;
|
|
|
- case EnemyTargetType.Player:
|
|
|
- player = searchTrigger.GetPlayer(out disPlayer);
|
|
|
- if (player != null)
|
|
|
- {
|
|
|
- targetDemonic = null;
|
|
|
- targetTower = null;
|
|
|
- targetPlayer = player;
|
|
|
- return true;
|
|
|
- }
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return false;
|
|
|
}
|
|
|
- return false;
|
|
|
}
|
|
|
|
|
|
public void OnSearchState()
|
|
|
@@ -570,49 +435,21 @@ public class Enemy : MonoBehaviour
|
|
|
case SearchState.InSearchScope:
|
|
|
if (!SearchTarget())
|
|
|
{
|
|
|
- targetDemonic = null;
|
|
|
- targetTower = null;
|
|
|
- targetPlayer = null;
|
|
|
+ targetCharacter = null;
|
|
|
ChangeSearchState(SearchState.NoTarget);
|
|
|
break;
|
|
|
}
|
|
|
- if (targetDemonic != null && Mathf.Abs(targetDemonic.transform.position.x - transform.position.x) <= attackDistance)
|
|
|
- {
|
|
|
- ChangeSearchState(SearchState.InAttackScope);
|
|
|
- break;
|
|
|
- }
|
|
|
- if (targetTower != null && Mathf.Abs(targetTower.transform.position.x - transform.position.x) <= attackDistance)
|
|
|
- {
|
|
|
- ChangeSearchState(SearchState.InAttackScope);
|
|
|
- break;
|
|
|
- }
|
|
|
- if (targetPlayer != null && Mathf.Abs(targetPlayer.transform.position.x - transform.position.x) <= attackDistance)
|
|
|
+ if (targetCharacter != null && Mathf.Abs(targetCharacter.transform.position.x - transform.position.x) <= attackDistance)
|
|
|
{
|
|
|
ChangeSearchState(SearchState.InAttackScope);
|
|
|
break;
|
|
|
}
|
|
|
break;
|
|
|
case SearchState.InAttackScope:
|
|
|
- if (targetDemonic != null)
|
|
|
+ if (targetCharacter != null)
|
|
|
{
|
|
|
- if (!targetDemonic.gameObject.activeInHierarchy || targetDemonic.isDie
|
|
|
- || Mathf.Abs(targetDemonic.transform.position.x - transform.position.x) > attackDistance)
|
|
|
- {
|
|
|
- ChangeSearchState(SearchState.NoTarget);
|
|
|
- }
|
|
|
- }
|
|
|
- else if (targetTower != null)
|
|
|
- {
|
|
|
- if (!targetTower.gameObject.activeInHierarchy || targetTower.isDie
|
|
|
- ||Mathf.Abs(targetTower.transform.position.x - transform.position.x) > attackDistance)
|
|
|
- {
|
|
|
- ChangeSearchState(SearchState.NoTarget);
|
|
|
- }
|
|
|
- }
|
|
|
- else if (targetPlayer != null)
|
|
|
- {
|
|
|
- if (!targetPlayer.gameObject.activeInHierarchy || targetPlayer.isDie
|
|
|
- || Mathf.Abs(targetPlayer.transform.position.x - transform.position.x) > attackDistance)
|
|
|
+ if (!targetCharacter.gameObject.activeInHierarchy || targetCharacter.isDie
|
|
|
+ || Mathf.Abs(targetCharacter.transform.position.x - transform.position.x) > attackDistance)
|
|
|
{
|
|
|
ChangeSearchState(SearchState.NoTarget);
|
|
|
}
|
|
|
@@ -627,19 +464,9 @@ public class Enemy : MonoBehaviour
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void BeHit(int damage, Vector3 force)
|
|
|
+ public override void BeHit(int damage, Vector3 force)
|
|
|
{
|
|
|
- hp -= damage;
|
|
|
- uiHp.ShowHP(hp, totalHp);
|
|
|
- rb.AddForce(force);
|
|
|
- if (hp < 0)
|
|
|
- {
|
|
|
- ChangeState(EnemyState.Die);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- ChangeState(EnemyState.Hurt);
|
|
|
- }
|
|
|
+ base.BeHit(damage, force);
|
|
|
}
|
|
|
|
|
|
public void Attack1()
|
|
|
@@ -657,7 +484,7 @@ public class Enemy : MonoBehaviour
|
|
|
}
|
|
|
attackTriggers[i].force = attackDir * attack1Infos[i].force;
|
|
|
}
|
|
|
- ChangeState(EnemyState.Attack);
|
|
|
+ ChangeState(CharacterState.Attack);
|
|
|
}
|
|
|
|
|
|
void Attack2()
|
|
|
@@ -691,14 +518,7 @@ public class Enemy : MonoBehaviour
|
|
|
}
|
|
|
attackTriggers[i].force = attackDir * attack2Infos[i].force;
|
|
|
}
|
|
|
- ChangeState(EnemyState.Attack);
|
|
|
+ ChangeState(CharacterState.Attack);
|
|
|
}
|
|
|
|
|
|
- void BeCreate(int tHp)
|
|
|
- {
|
|
|
- totalHp = tHp;
|
|
|
- hp = totalHp;
|
|
|
- ChangeState(EnemyState.Idle);
|
|
|
- ChangeSearchState(SearchState.NoTarget);
|
|
|
- }
|
|
|
}
|