Example #1
0
        void Start()
        {
            #region find object
            CarBot carBot = gameObject.AddComponent<CarBot>();
            carBot.MovementSpeed = 10f;
            ingame = GameObjectAgent.Instance.getComponent<Ingame>("MainGUI", "3_Ingame");
            baseMain = GameObjectAgent.Instance.findChild("MainGUI", "3_Ingame/Bottom/Base/Main");
            baseG1 = GameObjectAgent.Instance.findChild("MainGUI", "3_Ingame/Bottom/Base/G1");
            baseG2 = GameObjectAgent.Instance.findChild("MainGUI", "3_Ingame/Bottom/Base/G2");
            parent = GameObjectAgent.Instance.findChild("MainGUI", "3_Ingame/Bottom/Panel");

            titleOfMain = GameObjectAgent.Instance.findChild("MainGUI", "3_Ingame/Bottom/Title/Main");
            titleOfG1 = GameObjectAgent.Instance.findChild("MainGUI", "3_Ingame/Bottom/Title/G1");
            titleOfG2 = GameObjectAgent.Instance.findChild("MainGUI", "3_Ingame/Bottom/Title/G2");
            //var bottom = GameObjectAgent.Instance.findChild("MainGUI", "3_Ingame/Bottom");




            #endregion find object           

            #region add event
            {
                EventTriggerAgent.Instance.addEvent(baseMain, EventTriggerType.PointerClick, () =>
                {
                    Debug.Log("??");
                    selected = baseMain;
                    GUIAgent.Instance.setSprite("MainGUI", "3_Ingame/Bottom/Title/Main", ResourcesManager.Instance.sprites["title_MAIN_select"]);
                    GUIAgent.Instance.setSprite("MainGUI", "3_Ingame/Bottom/Title/G1", ResourcesManager.Instance.sprites["title_G1_normal"]);
                    GUIAgent.Instance.setSprite("MainGUI", "3_Ingame/Bottom/Title/G2", ResourcesManager.Instance.sprites["title_G2_normal"]);
                });

                EventTriggerAgent.Instance.addEvent(baseG1, EventTriggerType.PointerClick, () =>
                {
                    Debug.Log("??");
                    selected = baseG1;
                    GUIAgent.Instance.setSprite("MainGUI", "3_Ingame/Bottom/Title/Main", ResourcesManager.Instance.sprites["title_MAIN_normal"]);
                    GUIAgent.Instance.setSprite("MainGUI", "3_Ingame/Bottom/Title/G1", ResourcesManager.Instance.sprites["title_G1_select"]);
                    GUIAgent.Instance.setSprite("MainGUI", "3_Ingame/Bottom/Title/G2", ResourcesManager.Instance.sprites["title_G2_normal"]);
                });

                EventTriggerAgent.Instance.addEvent(baseG2, EventTriggerType.PointerClick, () =>
                {
                    Debug.Log("??");
                    selected = baseG2;
                    GUIAgent.Instance.setSprite("MainGUI", "3_Ingame/Bottom/Title/Main", ResourcesManager.Instance.sprites["title_MAIN_normal"]);
                    GUIAgent.Instance.setSprite("MainGUI", "3_Ingame/Bottom/Title/G1", ResourcesManager.Instance.sprites["title_G1_normal"]);
                    GUIAgent.Instance.setSprite("MainGUI", "3_Ingame/Bottom/Title/G2", ResourcesManager.Instance.sprites["title_G2_select"]);
                });


                GUIAgent.Instance.addListener("UI", "3_Ingame/Bottom/Button/Play", () =>
                {
                    //puzzleGame.play();
                });                

              
            }

            for (int i = 0; i < Constants.imageNames.Length; i++)
            {
                var name = Constants.imageNames[i];
                var parentOfPanel = GameObjectAgent.Instance.findChild("MainGUI", "3_Ingame/Bottom/Panel/" + name);
                GUIAgent.Instance.addListener("MainGUI", "3_Ingame/Bottom/Button/Layout/" + name, () =>
                {
                    if (!selected) return;
                    int countOfContainer = selected.name.Contains("Main") ? 16 : 8;

                    if (selected.transform.childCount < countOfContainer && parentOfPanel.transform.childCount > 0)
                        parentOfPanel.transform.GetChild(0).SetParent(selected.transform);
                });
            }
            #endregion add event

            #region init

            createPanel(32);
            selected = baseMain;
            GUIAgent.Instance.setSprite("MainGUI", "3_Ingame/Bottom/Title/Main", ResourcesManager.Instance.sprites["title_MAIN_select"]);
            GUIAgent.Instance.setSprite("MainGUI", "3_Ingame/Bottom/Title/G1", ResourcesManager.Instance.sprites["title_G1_normal"]);
            GUIAgent.Instance.setSprite("MainGUI", "3_Ingame/Bottom/Title/G2", ResourcesManager.Instance.sprites["title_G2_normal"]);

            #endregion init
        }
Example #2
0
    void Start()
    {
        var parts       = GameObjectAgent.Instance.findChild("Object", "Parts");
        var selectedBot = GameObjectAgent.Instance.findChild("Object", "SelectedRobot");
        var activePart  = parts.GetComponent <PartsManager>().ActiveParts;
        var table       = GameObjectAgent.Instance.findChild("Object", "Table");
        var robot       = GameObjectAgent.Instance.findChild("Object", "Robot");

        GUIAgent.Instance.registerObject("UI");
        GUIAgent.Instance.registerObject("UI", "1_Lobby");
        GUIAgent.Instance.registerObject("UI", "1_Lobby/Notice");
        GUIAgent.Instance.registerObject("UI", "1_Lobby/Notice/Cancel");
        GUIAgent.Instance.registerObject("UI", "1_Lobby/GameStart");
        //GUIAgent.Instance.registerObject("UI", "1_Lobby/Button");
        GUIAgent.Instance.registerObject("UI", "1_Lobby/Customizing");
        GUIAgent.Instance.registerObject("UI", "1_Lobby/Setting");
        GUIAgent.Instance.registerObject("UI", "1_Lobby/Storage");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Button/Left");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Button/Right");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel/Scale/Center");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/Image/Parts");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/Image/Color");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/Image/Scale");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/Image/Sticker");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel/Parts");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel/Parts/Head");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel/Parts/Body");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel/Parts/Arm_Left");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel/Parts/Arm_Right");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel/Parts/Leg_Left");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel/Parts/Leg_Right");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel/Color");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel/Scale");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel/Sticker");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Naming");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Complete");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Cancel");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel/Scale/Number");
        for (int i = 0; i < GUIAgent.Instance.GuiObjects["UI/2_Customizing/Frame/ScrollPanel/Scale/Number"].transform.childCount; ++i)
        {
            GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel/Scale/Number/Number_" + (i + 1));
        }
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel/Sticker/Panel");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/FrameVignetting");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Complete/Panel/Text/Name");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel/Scale/Center/Toggle");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel/Scale/Right");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Frame/ScrollPanel/Scale/Left");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Title/Next");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Title/Prev");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Button/Storage");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Naming/Complete");
        GUIAgent.Instance.registerObject("UI", "2_Customizing/Complete/Frame/Back");
        GUIAgent.Instance.registerObject("UI", "3_Ingame");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/PopUp");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Bottom/Base/Main");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Bottom/Base/G1");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Bottom/Base/G2");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Pause");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Top");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Bottom");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Bottom/Panel");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Top/Option");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Pause/Button/Cancel");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Pause/Button/Continue");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Pause/Button/Replay");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Bottom/Button/Play");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Pause/Button/Setting");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Pause/Button/Stop");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Clear");

        GUIAgent.Instance.registerObject("UI", "3_Ingame/Clear/Top/Title/Prev");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Clear/Top/Title/Next");

        GUIAgent.Instance.registerObject("UI", "3_Ingame/Clear/Bottom/Button/Next");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Clear/Bottom/Button/Back");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Bottom/Title/Main");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Bottom/Title/G1");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Bottom/Title/G2");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Top/Image/Number_Stage");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Top/Image/Number_Zero");
        GUIAgent.Instance.registerObject("UI", "3_Ingame/Top/Image/Number_Step");
        GUIAgent.Instance.registerObject("UI", "4_Option/Setting/Bt_Cancel");
        GUIAgent.Instance.registerObject("UI", "4_Option/Connect/Bt_Cancel");
        GUIAgent.Instance.registerObject("UI", "4_Option/Account/Bt_Cancel");



        GUIAgent.Instance.registerObject("UI", "6_Storage/FrameSub/Back");
        GUIAgent.Instance.registerObject("UI", "6_Storage/bt");
        GUIAgent.Instance.registerObject("UI", "6_Storage/FrameSub/Customizing");
        GUIAgent.Instance.registerObject("UI", "6_Storage/FrameSub/Choice");
        for (int i = 0; i < Constants.imageNames.Length; i++)
        {
            GUIAgent.Instance.registerObject("UI", "3_Ingame/Bottom/Button/Layout/" + Constants.imageNames[i]);
        }
        GUIAgent.Instance.registerObject("UI", "4_Option");
        GUIAgent.Instance.registerObject("UI", "4_Option/Setting");
        GUIAgent.Instance.registerObject("UI", "4_Option/Connect");
        GUIAgent.Instance.registerObject("UI", "4_Option/Account");
        GUIAgent.Instance.registerObject("UI", "4_Option/Account/Title_Facebook");
        GUIAgent.Instance.registerObject("UI", "4_Option/Account/Title_Twitter");
        GUIAgent.Instance.registerObject("UI", "6_Storage");
        GUIAgent.Instance.registerObject("UI", "6_Storage/Title/Prev");
        GUIAgent.Instance.registerObject("UI", "6_Storage/Title/Next");
        GUIAgent.Instance.registerObject("UI", "6_Storage/Frame/ScrollPanel/Bot");
        GUIAgent.Instance.registerObject("UI", "6_Storage/Panel/Name");
        GUIAgent.Instance.registerObject("UI", "7_GameStart");
        GUIAgent.Instance.registerObject("UI", "7_GameStart/Earth");
        GUIAgent.Instance.registerObject("UI", "7_GameStart/Stage");
        GUIAgent.Instance.registerObject("UI", "7_GameStart/Back");
        GUIAgent.Instance.registerObject("UI", "7_GameStart/Stage/ScrollPanel");
        for (int i = 0; i < GUIAgent.Instance.GuiObjects["UI/7_GameStart/Stage/ScrollPanel"].transform.childCount; i++)
        {
            GUIAgent.Instance.registerObject("UI", "7_GameStart/Stage/ScrollPanel/" + (i + 1));
        }
        GUIAgent.Instance.registerObject("Background", "1_Lobby");
        GUIAgent.Instance.registerObject("Background", "2_Customizing");
        GUIAgent.Instance.registerObject("Background", "2_Customizing/Clear");
        GUIAgent.Instance.registerObject("Background", "3_Ingame/Clear");
        GUIAgent.Instance.registerObject("Background", "3_Ingame/Bg");
        GUIAgent.Instance.registerObject("Background", "3_Ingame");
        GUIAgent.Instance.registerObject("Background", "6_Storage");
        GUIAgent.Instance.registerObject("0_Transition", "Top");
        GUIAgent.Instance.registerObject("0_Transition", "Bottom");

        GUIAgent.Instance.registerObject("JoyStickGUI");
        GUIAgent.Instance.registerObject("JoyStickGUI", "BTPanel/Start");
        GUIAgent.Instance.registerObject("BlueToothGUI");
        GUIAgent.Instance.registerObject("MainGUI");

        AnimationAgent.Instance.registerAnimator(selectedBot.name, selectedBot.GetComponent <Animator>());
        for (int i = 0; i < activePart.Length; i++)
        {
            AnimationAgent.Instance.setInteger(activePart[i].name, "State", 0);
        }

        CarBot carBot = GameObjectAgent.Instance.addComponent <CarBot>("UI", "3_Ingame");

        GameObjectAgent.Instance.addComponent <Lobby>("UI", "1_Lobby");
        GameObjectAgent.Instance.addComponent <Customizing>("UI", "2_Customizing");
        GameObjectAgent.Instance.addComponent <Ingame>("UI", "3_Ingame");
        GameObjectAgent.Instance.addComponent <Option>("UI", "4_Option");
        GameObjectAgent.Instance.addComponent <Storage>("UI", "6_Storage");
        GameObjectAgent.Instance.addComponent <GameStart>("UI", "7_GameStart");

        string tmp = PlayerPrefs.GetString("name", "N/A");

        string[] nameOfBots = tmp.Split('/');
        if (!tmp.Contains("N/A") && nameOfBots != null && nameOfBots.Length > 0)
        {
            for (int i = 0; i < nameOfBots.Length - 1; i++)
            {
                GameObject newBot = new GameObject(nameOfBots[i]);
                newBot.SetActive(true);
                newBot.name = nameOfBots[i];
                newBot.transform.SetParent(robot.transform);
                GameObjectAgent.Instance.getComponent <Storage>(GUIAgent.Instance.GuiObjects["UI/6_Storage"]).loadPart2(nameOfBots[i]);
            }
        }

        string[] nameOfSprites = PlayerPrefs.GetString("nameOfSprite").Split('/');
        for (int i = 0; i < nameOfSprites.Length - 1; i++)
        {
            Texture2D text  = new Texture2D(460, 460, TextureFormat.ARGB32, false);
            string    temp  = PlayerPrefs.GetString(nameOfSprites[i]);
            byte[]    bytes = System.Convert.FromBase64String(temp);
            text.LoadImage(bytes);

            Sprite sprite = Sprite.Create(text, new Rect(0, 0, text.width, text.height), new Vector2(.5f, .5f));
            sprite.name = nameOfSprites[i].Split('+')[0];

            ResourcesManager.Instance.sprites.Add(sprite.name, sprite);
        }

        GameObjectAgent.Instance.setActive(parts, false);
        GameObjectAgent.Instance.setActive(robot, false);
        GameObjectAgent.Instance.setActive(table, false);
        GameObjectAgent.Instance.setActive(selectedBot, false);
        GUIAgent.Instance.setEnabled("BlueToothGUI", false);
        GUIAgent.Instance.setEnabled("JoyStickGUI", false);
        GUIAgent.Instance.setEnabled("MainGUI", false);

        //블루투스 이부분 적용하면됨
        #region BlueTooth 세팅
        //스캔 버튼등록
        GUIAgent.Instance.addListener("MainGUI", "TitlePanel/ScanButton", () =>
        {
            //신호가 잡힌 블루투스를 배열할 스크롤컨탠트 위치값
            GameObject tagetScrollContent = GameObject.Find("ScrollContent");
            //프리팹 설정
            GameObject DeviceButton = Resources.Load <GameObject>("Prefab/Button/DeviceButton");

            BlueToothManager.Instance.Scan(tagetScrollContent,
                                           DeviceButton,
                                           () => GUIAgent.Instance.setEnabled("MainGUI", true));
        });


        GUIAgent.Instance.addListener("MainGUI", "TitlePanel/ScanButton", () =>
        {
            //신호가 잡힌 블루투스를 배열할 스크롤컨탠트 위치값
            GameObject tagetScrollContent = GameObject.Find("ScrollContent");
            //프리팹 설정
            GameObject DeviceButton = ResourcesManager.Instance.prefabs["DeviceButton"];//Resources.Load<GameObject>("Prefab /Button/DeviceButton");

            BlueToothManager.Instance.Scan(tagetScrollContent,
                                           DeviceButton,
                                           () => GUIAgent.Instance.setEnabled("JoyStickGUI", true));
        });

        /* // 폐기
         * //움직임 제어 테스트 등록
         * GUIAgent.GetInst.AddListener ( "MainGUI", "Test", () => {
         *  //GUIAgent.GetInst.CanvasEnabled ( "JoyStickGUI", true );
         *  GUIAgent.GetInst.Reset ( "CabotTestGUI" );
         *
         *  //GUIAgent.GetInst.SetInputFieldText ( "JoyStickGUI", "BTPanel", "Time", "500" );
         * } );
         */
        //조이스틱 시작등록
        GUIAgent.Instance.addListener("MainGUI", "Move", () =>
        {
            GUIAgent.Instance.setEnabled("JoyStickGUI", true);
            GUIAgent.Instance.setEnabled("BlueToothGUI", false);
            GUIAgent.Instance.setEnabled("MainGUI", false);
            GameObjectAgent.Instance.getComponent <UnityEngine.UI.InputField>("JoyStickGUI", "BTPanel/Time").text = "500";
        });

        //////백버튼 등록
        GUIAgent.Instance.addListener("JoyStickGUI", "BTPanel/Back", () =>
        {
            GUIAgent.Instance.setEnabled("JoyStickGUI", false);
            GUIAgent.Instance.setEnabled("BlueToothGUI", false);
            GUIAgent.Instance.setEnabled("MainGUI", true);;
            carBot.StopControlJoyStick();
        });

        //////시작버튼 등록
        GUIAgent.Instance.addListener("JoyStickGUI", "BTPanel/Start", () =>
        {
            string text  = GameObjectAgent.Instance.getComponent <UnityEngine.UI.InputField>("JoyStickGUI", "BTPanel/Time").text;
            int loopTime = System.Int32.Parse(text);
            Debug.Log(loopTime);
            carBot.RunControlJoyStick();
        });

        #endregion
    }
Example #3
0
        void Start()
        {
            #region find object
            CarBot carBot = gameObject.GetComponent<CarBot>();
            carBot.MovementSpeed = 10f;

            var selectedRobot = GameObjectAgent.Instance.findChild("Object", "SelectedRobot");
            var parts = GameObjectAgent.Instance.findChild("Object", "Parts");
            var robot = GameObjectAgent.Instance.findChild("Object", "Robot");
            //var activePart = parts.GetComponent<PartsManager>().ActiveParts;
            var table = GameObjectAgent.Instance.findChild("Object", "Table");
            var level = GameObject.Find("Level");
            var manager = GameObject.Find("Manager");
            var mainCamera = GameObjectAgent.Instance.findChild("Camera", "Main Camera").GetComponent<Camera>();
            var orthographicCamera = GameObjectAgent.Instance.findChild("Camera", "Orthographic Camera").GetComponent<Camera>();
            var light = GameObjectAgent.Instance.findChild("Light", "Base");
            var lightOfIngame = GameObjectAgent.Instance.findChild("Light", "Ingame");


            #endregion find object           

            #region add event
            {
                EventTriggerAgent.Instance.addEvent(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Bottom/Base/Main"], EventTriggerType.PointerClick, () =>
                {
                    selected = GUIAgent.Instance.GuiObjects["UI/3_Ingame/Bottom/Base/Main"];
                    GUIAgent.Instance.setSprite("UI", "3_Ingame/Bottom/Title/Main", ResourcesManager.Instance.sprites["title_MAIN_select"]);
                    GUIAgent.Instance.setSprite("UI", "3_Ingame/Bottom/Title/G1", ResourcesManager.Instance.sprites["title_G1_normal"]);
                    GUIAgent.Instance.setSprite("UI", "3_Ingame/Bottom/Title/G2", ResourcesManager.Instance.sprites["title_G2_normal"]);
                });

                EventTriggerAgent.Instance.addEvent(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Bottom/Base/G1"], EventTriggerType.PointerClick, () =>
                {
                    selected = GUIAgent.Instance.GuiObjects["UI/3_Ingame/Bottom/Base/G1"];
                    GUIAgent.Instance.setSprite("UI", "3_Ingame/Bottom/Title/Main", ResourcesManager.Instance.sprites["title_MAIN_normal"]);
                    GUIAgent.Instance.setSprite("UI", "3_Ingame/Bottom/Title/G1", ResourcesManager.Instance.sprites["title_G1_select"]);
                    GUIAgent.Instance.setSprite("UI", "3_Ingame/Bottom/Title/G2", ResourcesManager.Instance.sprites["title_G2_normal"]);
                });

                EventTriggerAgent.Instance.addEvent(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Bottom/Base/G2"], EventTriggerType.PointerClick, () =>
                {
                    selected = GUIAgent.Instance.GuiObjects["UI/3_Ingame/Bottom/Base/G2"];
                    GUIAgent.Instance.setSprite("UI", "3_Ingame/Bottom/Title/Main", ResourcesManager.Instance.sprites["title_MAIN_normal"]);
                    GUIAgent.Instance.setSprite("UI", "3_Ingame/Bottom/Title/G1", ResourcesManager.Instance.sprites["title_G1_normal"]);
                    GUIAgent.Instance.setSprite("UI", "3_Ingame/Bottom/Title/G2", ResourcesManager.Instance.sprites["title_G2_select"]);
                });

                GUIAgent.Instance.addListener("UI", "3_Ingame/Top/Option", () =>
                {
                    GameObjectAgent.Instance.setActive(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Pause"], true);
                });

                GUIAgent.Instance.addListener("UI", "3_Ingame/Pause/Button/Cancel", () =>
                {
                    GameObjectAgent.Instance.setActive(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Pause"], false);
                });

                GUIAgent.Instance.addListener("UI", "3_Ingame/Pause/Button/Continue", () =>
                {
                    GameObjectAgent.Instance.setActive(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Pause"], false);
                });

                var puzzleGame = manager.GetComponent<PuzzleGame>();
                GUIAgent.Instance.addListener("UI", "3_Ingame/Pause/Button/Replay", () =>
                {
                    GameObjectAgent.Instance.setActive(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Pause"], false);
                    puzzleGame.init();
                    clearBase();
                });

                GUIAgent.Instance.addListener("UI", "3_Ingame/Bottom/Button/Play", () =>
                {
                    var sprite = GUIAgent.Instance.GuiObjects["UI/3_Ingame/Bottom/Button/Play"].GetComponent<UnityEngine.UI.Image>().sprite;

                    if (sprite.Equals(ResourcesManager.Instance.sprites["bt_play"]))
                    {
                        GUIAgent.Instance.setSprite("UI", "3_Ingame/Bottom/Button/Play", ResourcesManager.Instance.sprites["bt_stop"]);
                        puzzleGame.play();
                    }
                    else
                    {
                        GUIAgent.Instance.setSprite("UI", "3_Ingame/Bottom/Button/Play", ResourcesManager.Instance.sprites["bt_play"]);
                        puzzleGame.init();
                    }
                });

                GUIAgent.Instance.addListener("UI", "3_Ingame/Pause/Button/Setting", () =>
                {
                    GameObjectAgent.Instance.setActive(GUIAgent.Instance.GuiObjects["UI/4_Option"], true);
                    GameObjectAgent.Instance.setActive(GUIAgent.Instance.GuiObjects["UI/4_Option/Setting"], true);
                });

                GUIAgent.Instance.addListener("UI", "3_Ingame/Pause/Button/Stop", () =>
                {//
                    clearBase();
                    GUIAgent.Instance.setSprite("UI", "3_Ingame/Bottom/Button/Play", ResourcesManager.Instance.sprites["bt_play"]);
                    GameObjectAgent.Instance.getComponent<GameManager>("UI").transition();
                    GameObjectAgent.Instance.delaySetActive(gameObject, false, GameManager.Close + GameManager.Delay);
                    GameObjectAgent.Instance.delaySetActive(selectedRobot, true, GameManager.Close + GameManager.Delay);
                    GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/7_GameStart"], true, GameManager.Close + GameManager.Delay);
                    GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/7_GameStart/Stage"], true, GameManager.Close + GameManager.Delay);                    
                    GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Pause"], false, GameManager.Close + GameManager.Delay);                    
                    GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Top"], true, GameManager.Close + GameManager.Delay);
                    GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Bottom"], true, GameManager.Close + GameManager.Delay);
                });

                GUIAgent.Instance.addListener("UI", "3_Ingame/Clear/Bottom/Button/Next", () =>
                {
                    GameObjectAgent.Instance.getComponent<GameManager>("UI").transition();
                    if (PuzzleGame.stage > 10)
                    {
                        PuzzleGame.step++;
                        PuzzleGame.stage = 1;
                    }
                    
                    if (PuzzleGame.step == 3 && PuzzleGame.stage == 1)
                    {
                        GameObjectAgent.Instance.delaySetActive(gameObject, false, GameManager.Close + GameManager.Delay);
                        GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Clear"], false, GameManager.Close + GameManager.Delay);
                        GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Top"], true, GameManager.Close + GameManager.Delay);
                        GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Bottom"], true, GameManager.Close + GameManager.Delay);                        
                        GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/7_GameStart"], true, GameManager.Close + GameManager.Delay);
                        GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/7_GameStart/Earth"], true, GameManager.Close + GameManager.Delay);
                        GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/7_GameStart/Stage"], false, GameManager.Close + GameManager.Delay);
                        return;
                    }

                    GUIAgent.Instance.setSprite("UI", "3_Ingame/Bottom/Button/Play", ResourcesManager.Instance.sprites["bt_play"]);
                    GameObjectAgent.Instance.delaySetActive(light, false, GameManager.Close + GameManager.Delay);
                    GameObjectAgent.Instance.delaySetActive(lightOfIngame, true, GameManager.Close + GameManager.Delay);                                       

                    GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Clear"], false, GameManager.Close + GameManager.Delay);
                    GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Top"], true, GameManager.Close + GameManager.Delay);
                    GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Bottom"], true, GameManager.Close + GameManager.Delay);
                    GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["Background/3_Ingame/Clear"], false, GameManager.Close + GameManager.Delay);
                    GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["Background/3_Ingame/Bg"], true, GameManager.Close + GameManager.Delay);

                    Utility.Instance.delayAction(GameManager.Close + GameManager.Delay, () =>
                    {
                        orthographicCamera.enabled = true;
                        mainCamera.enabled = false;

                        GameObjectAgent.Instance.setActive(level, true);
                        GameObjectAgent.Instance.setActive(manager, true);

                        manager.GetComponent<PuzzleGame>().init();
                        for (int i = 0; i < selectedRobot.transform.GetChild(0).childCount; i++)
                            AnimationAgent.Instance.setInteger(selectedRobot.transform.GetChild(0).GetChild(i).name, "State", 0);
                    });

                    clearBase();
                });

                GUIAgent.Instance.addListener("UI", "3_Ingame/Clear/Bottom/Button/Back", () =>
                {
                    GameObjectAgent.Instance.getComponent<GameManager>("UI").transition();
                    GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/7_GameStart"], true, GameManager.Close + GameManager.Delay);
                    GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/7_GameStart/Stage"], true, GameManager.Close + GameManager.Delay);
                    
                    GameObjectAgent.Instance.delaySetActive(gameObject, false, GameManager.Close + GameManager.Delay);
                    GameObjectAgent.Instance.delaySetActive(selectedRobot, true, GameManager.Close + GameManager.Delay);
                    
                    GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Clear"], false, GameManager.Close + GameManager.Delay);
                    GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["Background/3_Ingame/Clear"], false, GameManager.Close + GameManager.Delay);                    
                    GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Top"], true, GameManager.Close + GameManager.Delay);
                    GameObjectAgent.Instance.delaySetActive(GUIAgent.Instance.GuiObjects["UI/3_Ingame/Bottom"], true, GameManager.Close + GameManager.Delay);

                    GameObjectAgent.Instance.delaySetActive(light, false, GameManager.Close + GameManager.Delay);
                    GameObjectAgent.Instance.delaySetActive(lightOfIngame, true, GameManager.Close + GameManager.Delay);

                    GUIAgent.Instance.setSprite("UI", "3_Ingame/Bottom/Button/Play", ResourcesManager.Instance.sprites["bt_play"]);


                    //GameObjectAgent.Instance.setActive(GUIAgent.Instance.GuiObjects["UI/7_GameStart/Stage"], false);
                    //GameObjectAgent.Instance.setActive(GUIAgent.Instance.GuiObjects["UI/1_Lobby"], true);
                    //GameObjectAgent.Instance.setActive(GUIAgent.Instance.GuiObjects["Background/1_Lobby"], true);                    

                    clearBase();
                });
            }

            for (int i = 0; i < Constants.imageNames.Length; i++)
            {
                var name = Constants.imageNames[i];
                var parentOfPanel = GameObjectAgent.Instance.findChild("UI", "3_Ingame/Bottom/Panel/" + name);
                GUIAgent.Instance.addListener("UI", "3_Ingame/Bottom/Button/Layout/" + name, () =>
                {
                    if (!selected) return;
                    int countOfContainer = 0;// = selected.name.Contains("Main") ? 16 : 8;
                    if (selected.name.Contains("Main")) countOfContainer = countOfBase;
                    if (selected.name.Contains("G1")) countOfContainer = countOfG1;
                    if (selected.name.Contains("G2")) countOfContainer = countOfG2;

                    if (selected.transform.childCount < countOfContainer && parentOfPanel.transform.childCount > 0)
                        parentOfPanel.transform.GetChild(0).SetParent(selected.transform);

                });
            }
            #endregion add event

            #region init

            createPanel(32);
            selected = GUIAgent.Instance.GuiObjects["UI/3_Ingame/Bottom/Base/Main"];
            GUIAgent.Instance.setSprite("UI", "3_Ingame/Bottom/Title/Main", ResourcesManager.Instance.sprites["title_MAIN_select"]);
            GUIAgent.Instance.setSprite("UI", "3_Ingame/Bottom/Title/G1", ResourcesManager.Instance.sprites["title_G1_normal"]);
            GUIAgent.Instance.setSprite("UI", "3_Ingame/Bottom/Title/G2", ResourcesManager.Instance.sprites["title_G2_normal"]);
            GameObjectAgent.Instance.setActive(gameObject, false);
            GameObjectAgent.Instance.setActive("UI", "3_Ingame/Pause", false);
            GameObjectAgent.Instance.setActive("UI", "3_Ingame/Clear", false);
            GameObjectAgent.Instance.setActive("Background", "3_Ingame/Clear", false);
            GameObjectAgent.Instance.setActive("Background", "3_Ingame", false);

            #endregion init
        }