/// <summary> /// 新しいシーン情報を取得 /// </summary> /// <param name="sceneCondition"></param> /// <returns></returns> private SceneData GetNewSceneData(SceneCondition sceneCondition) { IComponentInitialiser componentInitialiser = GetComponentInitialiser(sceneCondition); // コンポーネント初期化クラスがnullだとコンポーネントが作れないのでエラー if (componentInitialiser == null) { throw new InvalidOperationException(sceneCondition.ToString() + "のコンポーネント初期化クラスを指定してください"); } string contentManagerName = GetContentManagerName(sceneCondition); // コンテントマネージャー名がnullだとコンテントマネージャーが作れないのでエラー if (contentManagerName == null) { throw new InvalidOperationException(sceneCondition.ToString() + "のコンテントマネージャー名を指定してください"); } ContentManager contentManager = GetContentManager(contentManagerName); SceneData newSceneData = new SceneData( sceneCondition, new ComponentManager(Game, componentInitialiser, contentManager) ); SetContentManagerUser(contentManagerName, newSceneData.ComponentManager); return(newSceneData); }
/// <summary> /// コンポーネント管理クラスを初期化する /// </summary> /// <param name="game"></param> /// <param name="sceneInitialiser"></param> /// <param name="contentManager"></param> public ComponentManager(Game game, IComponentInitialiser sceneInitialiser, ContentManager contentManager) { Game = game; SceneInitialiser = sceneInitialiser; ContentManager = contentManager; }
/// <summary> /// シーンのコンポーネント初期化クラスを登録する /// </summary> /// <param name="sceneCondition"></param> /// <param name="componentInitialiser"></param> public void SetSceneInitialiser(SceneCondition sceneCondition, IComponentInitialiser componentInitialiser) { SceneObjectManager.SetSceneInitialiser(sceneCondition, componentInitialiser); }
/// <summary> /// シーンのコンポーネント初期化クラスを登録する /// </summary> /// <param name="sceneCondition"></param> /// <param name="componentInitialiser"></param> public void SetSceneInitialiser(SceneCondition sceneCondition, IComponentInitialiser componentInitialiser) { _componentInitialiser[sceneCondition] = componentInitialiser; }