Example #1
0
    Rigidbody Charactor;                //캐릭터의 리지드바디

    // Use this for initialization
    void Start()
    {
        EndTimer = 0;                                     //타이머를 초기화 시켜준다
        DustSmoke.Stop();                                 //흙먼지 효과를 멈추어준다
        Charactor = transform.GetComponent <Rigidbody>(); //리지드바디를 받아 넣어줍니다
        BossSt    = Boss_State.Idle;                      //상태는 IDLE로 둡니다
    }
    void SetState()
    {
        distanceToTarget = Vector3.Distance(transform.position, playerTarget.position);

        if (boss_State != Boss_State.DEATH)
        {
            if (distanceToTarget > 3f && distanceToTarget <= 15f)
            {
                boss_State = Boss_State.PAUSE;
            }

            else if (distanceToTarget > 15f)
            {
                boss_State = Boss_State.IDLE;
            }

            else if (distanceToTarget <= 3f)
            {
                boss_State = Boss_State.ATTACK;
            }

            else
            {
                boss_State = Boss_State.NONE;
            }

            if (bossHealth.health <= 0f)
            {
                boss_State = Boss_State.DEATH;
            }
        }// if boss_state is not Death
    }
Example #3
0
 void Start()
 {
     EndTimer = 0;
     DustSmoke.Stop();
     Charactor = transform.GetComponent <Rigidbody>();
     BossSt    = Boss_State.Idle;
 }
Example #4
0
 public void ChScript(Boss_State newState)
 {
     if (_isinit)
     {
         _states[currentState].enabled = false;
         _states[currentState].EndState();
     }
     currentState = newState;
     _states[currentState].BeginState();
     _states[currentState].enabled = true;
 }
Example #5
0
 // Update is called once per frame
 void Update()
 {
     BossTimer            += Time.deltaTime;                                                             //보스 패턴의 시간을 deltaTime을 통해서 잽니다
     BTimer               += Time.deltaTime;                                                             //폭탄의 타이머를 deltaiTine을 통해서 잽니다
     Charactor.constraints = RigidbodyConstraints.FreezeRotation | RigidbodyConstraints.FreezePositionX; //회전이나 X축 이동을 하지 못하게 막아둡니다
     if (BossTimer > 10.0f)                                                                              //보스 타이머가 10초가 넘어갈 경우 패턴을 시작합니다
     {
         if (Boss_Hp > 7 && BTimer > 2.0f)                                                               //보스의 채력이 7보다 크고 2초가 경과했을때
         {
             Boss_Ani.SetBool("patton1", true);                                                          //패턴1을 시작합니다
             BossSt = Boss_State.Patton1;
             BossPatton1();
         }
         else if (Boss_Hp <= 7 && Boss_Hp > 3)   //보스의 체력이 7이하이고 3보다 클때
         {
             transform.localEulerAngles = new Vector3(0, -90, 0);
             Boss_Ani.SetBool("Patton2", true);
             BossSt = Boss_State.Patton2;        //패턴2를 시작합니다
             BossPatton2();
         }
         else if (Boss_Hp <= 3 && Boss_Hp > 0)   //보스이 체력이 3이하이고 0보다 클때
         {
             Boss_Ani.SetBool("Patton2", false);
             Boss_Ani.SetBool("patton1", true);
             BossSt = Boss_State.Patton3;        //패턴3을 시작합니다
             BossPatton2();                      //패턴3은 패턴1과 패턴2를 동시에 사용합니다
             BossPatton1();
         }
         else if (Boss_Hp <= 0)                  //보스의 체력이 0이하이면
         {
             EndTimer += Time.deltaTime;
             if (EndTimer > 7.0f)
             {
                 SceneManager.LoadScene("Endig");                //7초뒤 엔딩씬으로 넘어갑니다
             }
             flag.SetActive(true);
             BossSt = Boss_State.Die;            //보스가 죽은 후 각종 아이템이 나타납니다
             Boss_Ani.SetBool("Death", true);
             if (sandClock)
             {
                 sandClock.SetActive(true);
             }
         }
     }
     BossTalk();
 }
Example #6
0
 void Update()
 {
     BossTimer            += Time.deltaTime;
     BTimer               += Time.deltaTime;
     Charactor.constraints = RigidbodyConstraints.FreezeRotation | RigidbodyConstraints.FreezePositionX;
     if (BossTimer > 10.0f)
     {
         if (Boss_Hp > 7 && BTimer > 2.0f)
         {
             Boss_Ani.SetBool("patton1", true);
             BossSt = Boss_State.Patton1;
             BossPatton1();
         }
         else if (Boss_Hp <= 7 && Boss_Hp > 3)
         {
             transform.localEulerAngles = new Vector3(0, -90, 0);
             Boss_Ani.SetBool("Patton2", true);
             BossSt = Boss_State.Patton2;
             BossPatton2();
         }
         else if (Boss_Hp <= 3 && Boss_Hp > 0)
         {
             Boss_Ani.SetBool("Patton2", false);
             Boss_Ani.SetBool("patton1", true);
             BossSt = Boss_State.Patton3;
             BossPatton2();
             BossPatton1();
         }
         else if (Boss_Hp <= 0)
         {
             EndTimer += Time.deltaTime;
             if (EndTimer > 7.0f)
             {
                 SceneManager.LoadScene("Endig");
             }
             flag.SetActive(true);
             BossSt = Boss_State.Die;
             Boss_Ani.SetBool("Death", true);
             if (sandClock)
             {
                 sandClock.SetActive(true);
             }
         }
     }
     BossTalk();
 }