private void SetShootPatternByPhase(float[] percentage) { float Rand = UnityEngine.Random.Range(0, 100.0f); if (Rand < percentage[0]) { if (eShootPattern != BossShoot.BOSS_SHOOT1) { eShootPattern = BossShoot.BOSS_SHOOT1; } } else if (Rand < percentage[1]) { eShootPattern = BossShoot.BOSS_SHOOT2; bShoot = true; } else if (Rand < percentage[2]) { eShootPattern = BossShoot.BOSS_SHOOT4; bShoot = false; } else if (Rand < percentage[3]) { eShootPattern = BossShoot.BOSS_SHOOT5; bShoot = true; } else { eShootPattern = BossShoot.BOSS_SHOOT6; animator.SetTrigger("Rush"); //bShoot = true; } }
protected void SetShootPattern() { fPatternTick = 0; float DistanceToPlayer; Vector3 pos = transform.position; Vector3 playerPos = Player.GetComponent <Transform>().position; DistanceToPlayer = Vector3.Distance(pos, playerPos); if (DistanceToPlayer < 4.0f) { eShootPattern = BossShoot.BOSS_SHOOT3; return; } float[] percentage = new float[5]; // {테트리스, 표창, 광선, 몹 소환, 돌진} switch (iPhase) { case 1: percentage = new float[5] { 70.0f, 100.0f, 0.0f, 0.0f, 0.0f }; break; case 2: percentage = new float[5] { 50.0f, 70.0f, 90.0f, 100.0f, 0.0f }; break; case 3: percentage = new float[5] { 40.0f, 60.0f, 80.0f, 90.0f, 100.0f }; break; } SetShootPatternByPhase(percentage); if (CurrentBullet && eShootPattern != BossShoot.BOSS_SHOOT1) { GameObject.Destroy(CurrentBullet); } }
// Start is called before the first frame update void Start() { GameObject userInfo = GameObject.Find("UserData"); if (userInfo) { userInfo.GetComponent <UserInfo>().SetStage(2); } sound = gameObject.GetComponent <BossSound>(); animator = GetComponent <Animator>(); vMovingPos = new Vector3[26]; for (int i = 0; i < 26; i++) { vMovingPos[i] = new Vector3(5.5f, -4.6f + 0.35f * i, 0); } Player = GameObject.Find("Player"); iCurrentHP = iMaxHP; eMoveState = BossMoveState.BOSS_MOVE_APPEAR; eShootPattern = BossShoot.BOSS_SHOOT_NONE; }