private void Start() { //일반 이동, 행성 근접했을 때, 목적지 없을 때 이동 클래스 설정. mover[(int)MoveState.NORMAL] = new LinearMove(transform, speed); mover[(int)MoveState.NEAR_PLANET] = new RotateMove(transform, planet.planetBody, speed); mover[(int)MoveState.NO_DESTINATION] = new RotateMove(transform, planet.planetBody, speed); state = DefEnum.EnemyState.MOVE; }
//목적지 도달 했는 지 확인. bool CheckArriveAttackPoint() { //목적지에 도달했을 때. if (Vector3.Distance(transform.position, destAttackPoint.transform.position) <= 0.05f) { transform.position = destAttackPoint.transform.position; state = DefEnum.EnemyState.ATTACK; transform.rotation = Quaternion.LookRotation((planet.planetBody.transform.position - transform.position), Vector3.forward); BattleManager.Instance.ArrivalAttackPoint(this, destAttackPoint); EffectManager.Instance.LoadEffect("Attack_01", firePosition); return(true); } return(false); }
//플레이어 트랜스폼 받아 초기화. public void Init(Planet planet, InfoEnemy info) { this.planet = planet; destAttackPoint = BattleManager.Instance.AddEnemy(this); level = DataManager.Instance.enemyLevelDataList[info.ID].Level; HP = info.HP + (info.HPUpg * (level - 1)); speed = info.speed; attackSpeed = info.attackSpeed; attack = info.attack + (info.attackUpg * (level - 1)); enemyInfo = info; state = DefEnum.EnemyState.MOVE; GetComponent <Collider>().enabled = true; if (destAttackPoint != null) { moveState = MoveState.NORMAL; SetDirection(destAttackPoint); } else { moveState = MoveState.NO_DESTINATION; } }