public void Resume()
        {
            pause = false;

            foreach (var entity in entityLoader.GetAllEntities())
            {
                IPause iPause = entity.Logic as IPause;
                if (iPause != null)
                {
                    iPause.Resume();
                }
            }

            cameraInput.Resume();
        }
Esempio n. 2
0
    /// <summary>
    /// 一時停止・再開を切り替える
    /// </summary>
    void PauseResume()
    {
        m_pauseFlg = !m_pauseFlg;

        // 全ての GameObject を取ってきて、IPause を継承したコンポーネントが追加されていたら Pause または Resume を呼ぶ
        var objects = FindObjectsOfType <GameObject>();

        foreach (var o in objects)
        {
            IPause i = o.GetComponent <IPause>();

            if (m_pauseFlg)
            {
                i?.Pause();     // ここで「多態性」が使われている
            }
            else
            {
                i?.Resume();    // ここで「多態性」が使われている
            }
        }
    }