Esempio n. 1
0
 /// <summary>
 /// 指定したレイヤーをこのシーンから削除する。
 /// </summary>
 /// <param name="layer">削除されるレイヤー</param>
 public void RemoveLayer(Layer layer)
 {
     layersToDraw_.Remove(layer);
     layersToUpdate_.Remove(layer);
     CoreScene.RemoveLayer(layer.CoreLayer);
     layer.Scene = null;
 }
Esempio n. 2
0
 void Awake()
 {
     if (CoreScene.a == null)
     {
         a = this;
     }
 }
Esempio n. 3
0
    //
    void ConstructManagers()
    {
        _coreData =  new CoreData();

        _coreSound = new CoreSound();

        _coreEvent =  new CoreEvent();

        _coreScene = new CoreScene();
    }
Esempio n. 4
0
        /// <summary>
        /// 全てのレイヤーとポストエフェクトが描画され終わった画面をテクスチャとして取得する。
        /// </summary>
        /// <returns>画面</returns>
        /// <remarks>テクスチャの内容はシーンが描画されるたびに変わる。主にシーン遷移の際に使用する。</remarks>
        public RenderTexture2D GetEffectedScreen()
        {
            var ret = CoreScene.GetBaseTarget();

            if (ret == null)
            {
                return(null);
            }
            return(GC.GenerateRenderTexture2D(ret, GC.GenerationType.Get));
        }
Esempio n. 5
0
 /// <summary>
 /// シーンの最終的な描画内容を表示する三角形を追加する。
 /// </summary>
 /// <param name="pos1">座標1</param>
 /// <param name="uv1">UV1</param>
 /// <param name="col1">色1</param>
 /// <param name="pos2">座標2</param>
 /// <param name="uv2">UV2</param>
 /// <param name="col2">色2</param>
 /// <param name="pos3">座標3</param>
 /// <param name="uv3">UV2</param>
 /// <param name="col3">色3</param>
 public void AddDrawnTriangle(
     ref Vector2DF pos1, ref Vector2DF uv1, ref Color col1,
     ref Vector2DF pos2, ref Vector2DF uv2, ref Color col2,
     ref Vector2DF pos3, ref Vector2DF uv3, ref Color col3)
 {
     CoreScene.AddDrawnTriangle(
         ref pos1, ref uv1, ref col1,
         ref pos2, ref uv2, ref col2,
         ref pos3, ref uv3, ref col3);
 }
Esempio n. 6
0
        public ISceneViewModel BuildViewModel()
        {
            var cube = new TestCube();

            var scene = new CoreScene(new List <IMesh> {
                cube
            });
            var vm = new TestSceneVm(scene);

            return(vm);
        }
Esempio n. 7
0
 /// <summary>
 /// 指定したレイヤーをこのシーンに追加する。
 /// </summary>
 /// <param name="layer">追加されるレイヤー</param>
 public void AddLayer(Layer layer)
 {
     if (layer.Scene != null)
     {
         throw new InvalidOperationException("指定したレイヤーは、既に別のシーンに所属しています。");
     }
     layersToDraw_.Add(layer);
     layersToUpdate_.Add(layer);
     CoreScene.AddLayer(layer.CoreLayer);
     layer.Scene = this;
 }
Esempio n. 8
0
        /// <summary>
        /// 指定したレイヤーをこのシーンから削除する。
        /// </summary>
        /// <param name="layer">削除されるレイヤー</param>
        public void RemoveLayer(Layer layer)
        {
            if (executing)
            {
                removingLayer.AddLast(layer);
                return;
            }

            layersToDraw_.Remove(layer);
            layersToUpdate_.Remove(layer);
            CoreScene.RemoveLayer(layer.CoreLayer);
            layer.Scene = null;
        }
Esempio n. 9
0
        /// <summary>
        /// 指定したレイヤーをこのシーンに追加する。
        /// </summary>
        /// <param name="layer">追加されるレイヤー</param>
        public void AddLayer(Layer layer)
        {
            if (executing)
            {
                addingLayer.AddLast(layer);
                return;
            }

            if (layer.Scene != null)
            {
                Particular.Helper.ThrowException("指定したレイヤーは、既に別のシーンに所属しています。");
            }
            layersToDraw_.Add(layer);
            layersToUpdate_.Add(layer);
            CoreScene.AddLayer(layer.CoreLayer);
            layer.Scene = this;
            layer.Start();
        }
Esempio n. 10
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        public Scene()
        {
            CoreScene = Engine.ObjectSystemFactory.CreateScene();

            var p = CoreScene.GetPtr();

            var existing = GC.Scenes.GetObject(p);

            if (existing != null)
            {
                throw new Exception();
            }

            GC.Scenes.AddObject(p, this);

            layersToDraw_   = new List <Layer>();
            layersToUpdate_ = new List <Layer>();
            components_     = new Dictionary <string, SceneComponent>();
        }
Esempio n. 11
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        public Scene()
        {
            CoreScene = Engine.ObjectSystemFactory.CreateScene();

            var p = CoreScene.GetPtr();

            var existing = GC.Scenes.GetObject(p);

            if (existing != null)
            {
                Particular.Helper.ThrowException("");
            }

            GC.Scenes.AddObject(p, this);

            layersToDraw_     = new List <Layer>();
            layersToUpdate_   = new List <Layer>();
            componentManager_ = new ComponentManager <Scene, SceneComponent>(this);

            alreadyFirstUpdate = false;
        }