コード例 #1
0
    //----------------------------------------------------------------------------------------------------
    /// <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);
        }
    }
コード例 #2
0
    //----------------------------------------------------------------------------------------------------
    /// <summary>
    /// 待機処理
    /// </summary>
    void IdleProcess()
    {
        //初期設定
        if (m_state != m_statePrev)
        {
            m_statePrev = m_state;
        }

        //出現確立
        if (Random.Range(0f, 1f) <= m_appearanceRatePerFrame)
        {
            m_state = MaskEnemyStatus.Move;
        }
    }