public static void ApplicationRun()
        {
            Console.WriteLine(MethodBase.GetCurrentMethod().ReflectedType.Name + "." + MethodBase.GetCurrentMethod().Name);
            Console.WriteLine("시뮬레이션 종료     : Ctrl + Q");
            Console.WriteLine("예외 처리 테스트    : Ctrl + X");
            Console.WriteLine("컴포넌트 활성/비활성: E");

            Scene                  scene  = new Scene();
            SimulationObject       simObj = null;
            LifecycleUserComponent lcCom  = null;

            for (int i = 0; i < 2; i++)
            {
                simObj      = scene.AddObject();
                simObj.Name = "Obj" + i.ToString();
                lcCom       = simObj.AddComponent <LifecycleUserComponent>();
            }

            AsyncScheduler sc = new AsyncScheduler();

            sc.AddRepetitionTask(new Action(() =>
            {
                if (true == ConsoleKeyboard.IsKeyDown(ConsoleKey.X) && true == ConsoleKeyboard.IsKeyDown(ConsoleModifiers.Control))
                {
                    Console.WriteLine("예외(Exception) 처리를 테스트합니다.");
                    Console.WriteLine("{0:H}", 0);
                }

                if (true == ConsoleKeyboard.IsKeyDown(ConsoleKey.E))
                {
                    Console.WriteLine("컴포넌트를 활성/비활성화합니다.");
                    Application.Current.Scheduler.Run(() =>
                    {
                        lcCom.Enabled = !lcCom.Enabled;
                    });
                }
            }));

            app = new Application();
            app.UnhandledException += App_UnhandledExceptionHandler;
            app.Scheduler           = sc;

            scene.AddSubSystem(new UserSubsystem());

            app.LoadScene(scene);
            app.Start();

            bool isRun = true;

            while (true == isRun)
            {
                if (true == ConsoleKeyboard.IsKeyDown(ConsoleKey.Q) && true == ConsoleKeyboard.IsKeyDown(ConsoleModifiers.Control))
                {
                    Console.WriteLine("시뮬레이션 엔진을 종료합니다.");
                    isRun = false;
                }
                Thread.Sleep(16);
            }
            app.Stop();
        }
예제 #2
0
        public static void FindObjectsTest()
        {
            Scene                  scene = new Scene();
            SimulationObject       obj   = scene.AddObject();
            LifecycleUserComponent com   = obj.AddComponent <LifecycleUserComponent>();

            Application app = new Application();

            app.LoadScene(scene);

            //IList<SimulationObject> objs = scene.FindObjectsOfType<SimulationObject>();
            //IList<Component> coms = scene.FindObjectsOfType<Component>();
        }
예제 #3
0
        static void SimObjectEnableTest()
        {
            Scene                  DummyScene = new Scene();
            SimulationObject       SimObj     = DummyScene.AddObject();
            LifecycleUserComponent lcCom      = SimObj.AddComponent <LifecycleUserComponent>();

            Console.WriteLine("0");
            DummyScene.Update();

            Console.WriteLine("1");
            SimObj.SetActive(false);
            DummyScene.Update();

            Console.WriteLine("2");
            SimObj.SetActive(true);
            DummyScene.Update();
        }
예제 #4
0
        public static void DestroyTest()
        {
            Scene                  DummyScene = new Scene();
            SimulationObject       SimObj     = DummyScene.AddObject();
            LifecycleUserComponent lc         = SimObj.AddComponent <LifecycleUserComponent>();

            SimObj.AddComponent <LifecycleUserComponent2>();

            Console.WriteLine("0");
            DummyScene.Update();

            Console.WriteLine("1");
            //ETE.Engine.Object.DestroyImmediate(SimObj);
            //DummyScene.Stop();
            ETE.Engine.Object.Destroy(lc);

            DummyScene.Update();
        }
예제 #5
0
        public static void LifecycleTest()
        {
            Console.WriteLine(MethodBase.GetCurrentMethod().ReflectedType.Name + "." + MethodBase.GetCurrentMethod().Name);

            Console.WriteLine("0 Result: 0, Awake, OnEnable, Start, 1, OnDisable, OnDestroy");
            {
                Scene                  DummyScene = new Scene();
                SimulationObject       SimObj     = DummyScene.AddObject();
                LifecycleUserComponent lcCom      = SimObj.AddComponent <LifecycleUserComponent>();

                Console.WriteLine("0");
                DummyScene.Update();

                Console.WriteLine("1");
                ETE.Engine.Object.DestroyImmediate(SimObj);
            }

            Console.ReadKey(true);
            Console.WriteLine("\n");
            Console.WriteLine("1 Result: 0, Awake, 1, OnDestroy");
            {
                Scene                  DummyScene = new Scene();
                SimulationObject       SimObj     = DummyScene.AddObject();
                LifecycleUserComponent lcCom      = SimObj.AddComponent <LifecycleUserComponent>();

                Console.WriteLine("0");
                lcCom.Enabled = false;
                DummyScene.Update();

                Console.WriteLine("1");
                ETE.Engine.Object.DestroyImmediate(SimObj);
            }

            Console.ReadKey(true);
            Console.WriteLine("\n");
            Console.WriteLine("2 Result: 0, 1");
            {
                Scene                  DummyScene = new Scene();
                SimulationObject       SimObj     = DummyScene.AddObject();
                LifecycleUserComponent lcCom      = SimObj.AddComponent <LifecycleUserComponent>();

                Console.WriteLine("0");
                SimObj.SetActive(false);
                DummyScene.Update();

                Console.WriteLine("1");
                ETE.Engine.Object.DestroyImmediate(SimObj);
            }

            Console.ReadKey(true);
            Console.WriteLine("\n");
            Console.WriteLine("3 Result: 0, 1, Awake, OnEnable, Start, 2, OnDisable, OnDestroy");
            {
                Scene                  DummyScene = new Scene();
                SimulationObject       SimObj     = DummyScene.AddObject();
                LifecycleUserComponent lcCom      = SimObj.AddComponent <LifecycleUserComponent>();

                Console.WriteLine("0");
                SimObj.SetActive(false);
                DummyScene.Update();

                Console.WriteLine("1");
                SimObj.SetActive(true);
                DummyScene.Update();

                Console.WriteLine("2");
                ETE.Engine.Object.DestroyImmediate(SimObj);
            }

            Console.ReadKey(true);
            Console.WriteLine("\n");
            Console.WriteLine("4 Result: 0, Awake, OnEnable, Start, 1, OnDisable, 2, OnDestroy");
            {
                Scene                  DummyScene = new Scene();
                SimulationObject       SimObj     = DummyScene.AddObject();
                LifecycleUserComponent lcCom      = SimObj.AddComponent <LifecycleUserComponent>();

                Console.WriteLine("0");
                DummyScene.Update();

                Console.WriteLine("1");
                lcCom.Enabled = false;

                Console.WriteLine("2");
                ETE.Engine.Object.DestroyImmediate(SimObj);
            }

            Console.ReadKey(true);
            Console.WriteLine("\n");
            Console.WriteLine("5 Result: 0, Awake, OnEnable, Start, 1, OnDisable, 2, OnDestroy");
            {
                Scene                  DummyScene = new Scene();
                SimulationObject       SimObj     = DummyScene.AddObject();
                LifecycleUserComponent lcCom      = SimObj.AddComponent <LifecycleUserComponent>();

                Console.WriteLine("0");
                DummyScene.Update();

                Console.WriteLine("1");
                SimObj.SetActive(false);

                Console.WriteLine("2");
                ETE.Engine.Object.DestroyImmediate(SimObj);
            }

            Console.ReadKey(true);
            Console.WriteLine("\n");
            Console.WriteLine("6 Result: 0, Awake, OnEnable, Start, 1, OnDisable, 2, 3, 4, OnEnable, 5, OnDisable, 6, 7, OnEnable, 8, OnDisable, OnDestroy");
            {
                Scene                  DummyScene = new Scene();
                SimulationObject       SimObj     = DummyScene.AddObject();
                LifecycleUserComponent lcCom      = SimObj.AddComponent <LifecycleUserComponent>();

                Console.WriteLine("0");
                DummyScene.Update();

                Console.WriteLine("1");
                SimObj.SetActive(false);

                Console.WriteLine("2");
                lcCom.Enabled = false;

                Console.WriteLine("3");
                SimObj.SetActive(true);

                Console.WriteLine("4");
                lcCom.Enabled = true;

                Console.WriteLine("5");
                lcCom.Enabled = false;
                SimObj.SetActive(false);

                Console.WriteLine("6");
                lcCom.Enabled = true;

                Console.WriteLine("7");
                SimObj.SetActive(true);

                Console.WriteLine("8");
                ETE.Engine.Object.DestroyImmediate(SimObj);
            }

            Console.ReadKey(true);
            Console.WriteLine("\n");
            Console.WriteLine("7 Result: 0, Awake, OnEnable, Awake, OnEnable, Start, Start, 1, OnDisable, OnDestroy, 2, OnDisable, OnDestroy");
            {
                Scene DummyScene = new Scene();

                SimulationObject SimObj1 = DummyScene.AddObject();
                SimObj1.Name = "Obj1";
                LifecycleUserComponent lcCom1 = SimObj1.AddComponent <LifecycleUserComponent>();

                SimulationObject SimObj2 = DummyScene.AddObject();
                SimObj2.Name = "Obj2";
                LifecycleUserComponent lcCom2 = SimObj2.AddComponent <LifecycleUserComponent>();

                Console.WriteLine("0");
                DummyScene.Update();

                Console.WriteLine("1");
                ETE.Engine.Object.DestroyImmediate(SimObj1);

                Console.WriteLine("2");
                ETE.Engine.Object.DestroyImmediate(SimObj2);
            }


            Console.ReadKey(true);
            Console.WriteLine("\n");
            Console.WriteLine("8 Result: 0, 1, 2, Awake, OnEanble, Start, 3, OnDisable, OnDestroy");
            {
                Scene                  DummyScene = new Scene();
                SimulationObject       SimObj     = DummyScene.AddObject();
                LifecycleUserComponent lcCom      = SimObj.AddComponent <LifecycleUserComponent>();

                lcCom.Enabled = false;
                SimObj.SetActive(false);
                Console.WriteLine("0");
                DummyScene.Update();

                lcCom.Enabled = true;
                Console.WriteLine("1");
                DummyScene.Update();

                SimObj.SetActive(true);
                Console.WriteLine("2");
                DummyScene.Update();

                Console.WriteLine("3");
                DummyScene.Stop();
            }
        }