//---------------------------------------------------------------------------------------------------- /// <summary> /// 移動処理 /// </summary> void MoveProcess() { //初期設定 if (m_state != m_statePrev) { transform.position = m_startPos; transform.LookAt(m_targetPos); m_statePrev = m_state; } //移動 transform.position += m_progressiongDirection * m_speed * Time.deltaTime; m_countMovingTime += Time.deltaTime; transform.position += Vector3.up * Mathf.Sin(m_countMovingTime * m_shakeSpeed) * m_shakeWidth; //目的地到着 if (Vector3.Cross((m_targetPos - transform.position), transform.right).y <= 0) { m_state = MaskEnemyStatus.Idle; } //SEの再生 if (Mathf.Abs(Mathf.Sin(m_countMovingTime * m_shakeSpeed)) <= m_shakeWidth) { MySoundManager.Instance.Play(SeCollection.StrangeVoiceOfTheMask, true, transform.position.x, transform.position.y, transform.position.z); } }
//---------------------------------------------------------------------------------------------------- /// <summary> /// 待機処理 /// </summary> void IdleProcess() { //初期設定 if (m_state != m_statePrev) { m_statePrev = m_state; } //出現確立 if (Random.Range(0f, 1f) <= m_appearanceRatePerFrame) { m_state = MaskEnemyStatus.Move; } }