CMainSystemBase

ゲームオブジェクトに貼り付けた後、常駐します(シーンが切り替わっても削除されません)。

常駐するマネージャなどをこのスクリプト経由で追加することによって、必要なアセットをダウンロードしてくれます。

また、シーン切り替え等に、このスクリプトを使うとAssetBundleダウンロード時などに切り替えをペンディングしてくれます。

使うときは、CMainSystemクラスを作成し、継承するようにしてください。

Awake関数の中で AddComponent,addManagerをすることによって、Start関数内で自動的に必要な初期化や必要なアセットバンドルの読み込みを自動的に行います。

代表的な記述方法は次の通りです。

注釈

void Start() は、継承先でnewによって上書きしないようにしてください。 読み込みが正常に行えなくなります。

new void Awake() {
      base.Awake();

   if (m_instance != null) {
       Debug.LogError("already exist CMainSystem");
       return;
   }
   m_instance = this;

   // Add Component
   gameObject.AddComponent<CInput>();
   if (KsSoftConfig.UseAssetBundle) {
       gameObject.AddComponent<CAssetBundleMgr>();
   }
   gameObject.AddComponent<CSpriteFontMgr>();
   gameObject.AddComponent<CTextureResourceMgr>();
   gameObject.AddComponent<CWindowMgr>();
   gameObject.AddComponent<CBgmResourceMgr>();
   gameObject.AddComponent<CSeResourceMgr>();
   gameObject.AddComponent<CSoundEffectMgr>();

   // Managers that need to be initialized.
   addManager(new CMessageDataSheetMgr(Utility.getSystemLocale()));
}

注釈

Awake内で、AddComponetする必要があります。

継承先でオーバライドしてください。 アセットバンドルの読み込みが終わり、ILoader,IManagerの読み込みが完了した後、呼び出される。

継承先でオーバライドしてください。 シーンを切り替えたときに呼び出されます。

シーン読み込み中かどうか判定します。

CMainSystemBase.chageSceneによってシーンを切り替えているときのみ有効です。

初期化が終わっているかどうか判定します。

整数値の乱数を取得します。

指定された範囲の乱数を取得します。

指定された範囲の乱数を取得します。

浮動小数点の乱数を取得します。

MonoBehaviourを継承したスクリプトにつけてください。

CMainSystemBaseと同じゲームオブジェクト内のスクリプトにおいて、ILoaderを持つオブジェクトを調べ、 ILoader.isLoading() がfalseになるまで待機します。

注釈

Awake内で、AddComponetする必要があります。

Awake()内で、CMainSystemBase.addManagerで追加してください。

アセットバンドルを読み込んだのち、それを使って初期化する必要のあるオブジェクトに対してつけておく必要があります。

addManager(new CMessageDataSheetMgr());

ゲームオブジェクトが解放されるときに、呼ばれる解放処理

読み込む必要のあるアセットバンドルIDの配列を返す関数です。