예제 #1
0
 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;
 }
예제 #2
0
    //목적지 도달 했는 지 확인.
    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);
    }
예제 #3
0
 //플레이어 트랜스폼 받아 초기화.
 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;
     }
 }