Пример #1
0
    //부활 딜레이
    public void  ReviveEvent()
    {
        //현재 자신의 상태가 대기 또는 공격 상태일 경우
        if (CHState == CH_STATE.MS_Wait || CHState == CH_STATE.MS_Attack)
        {
            string enemyLayer = "Enemy";

            int layerMask = LayerMask.GetMask(enemyLayer);

            Collider[] colliders = Physics.OverlapSphere(transform.position, 3.0f, layerMask); // 3.0 반지름만큼 적 레이어를 확인하여 충돌자 배열에 집어넣음

            int Count = 0;

            //반복문을 돌면서 죽은 마리수를 확인
            for (int i = 0; i < colliders.Length; ++i)
            {
                FSMEnemy enemy = colliders[i].GetComponent<FSMEnemy>();

                if (enemy.IsDead())
                {
                    Count++;
                }
            }

            //3명 이상이라면 부활 가능이므로 부활 코루틴 실행
            if (Count > 2)
                SetState(CH_STATE.MS_Revive);
        }
    }
Пример #2
0
    void OnClickAction(bool b)
    {
        if (b == true)
        {
            IsClickEnemy = false;

            if (!IsWeaponEquiped)
            {
                EquipWeapon(true);
            }

            DashTrail.SetActive(false);

            Point.parent = null;

            if (enemy != null && !enemy.IsDead())
            {
                ChangeShader(enemy.GetComponentsInChildren <SkinnedMeshRenderer>(), "Custom/DissolveShader"); //아웃라인 쉐이더에서 기본 쉐이더로 변경
            }
        }
        else
        {
            IsClickEnemy = true;

            if (!IsWeaponEquiped)
            {
                EquipWeapon(true);
            }


            if (enemy != null)
            {
                ChangeShader(enemy.GetComponentsInChildren <SkinnedMeshRenderer>(), "Custom/DissolveShader");             //이전 클릭한 몬스터가 있다면 기본 쉐이더로 변경
            }
            if (enemy != null && !enemy.IsDead())
            {
                ChangeShader(enemy.GetComponentsInChildren <SkinnedMeshRenderer>(), "Custom/OutlineShader"); //클릭한 몬스터르 외곽선 쉐이더 적용
            }
        }
    }