Ejemplo n.º 1
0
    public void AddListDisplay(List <BattleExecutable> executables, GameObject parentContent)
    {
        var parentRect = parentContent.GetComponent <RectTransform>();

        parentRect.sizeDelta = new Vector2(parentRect.sizeDelta.x, 10);

        int i = 0;

        foreach (var executable in executables)
        {
            var contentItem = Instantiate(_actionItemPrefab);
            var height      = contentItem.GetComponent <RectTransform>().rect.height;
            var text        = contentItem.GetComponent <Text>();
            text.text = executable.Name;

            contentItem.transform.SetParent(parentContent.transform, false);
            contentItem.transform.localScale = Vector3.one;
            contentItem.transform.position   = new Vector3(
                contentItem.transform.position.x + parentRect.rect.width / 2 + 10,
                contentItem.transform.position.y - height / 2 - (height + 3) * i - 10,
                contentItem.transform.position.z);
            parentRect.sizeDelta = new Vector2(parentRect.sizeDelta.x,
                                               parentRect.sizeDelta.y + height + 3);

            SelectedAction.AddChild(new LeafMenuNode()
            {
                TextDisplay = text, Move = executable
            });
            i++;
        }
    }
Ejemplo n.º 2
0
 private void configureChildren(MenuNode parent)
 {
     parent.AddChild(MenuNode.ForInput <MvcGettingStarted>(FubuMVCWorldKeys.GettingStarted));
 }
Ejemplo n.º 3
0
        // Start is called before the first frame update
        void Start()
        {
            socketClient = new SocketClient();
            socketServer = GameObject.FindObjectOfType <SocketServer>();
            maker        = GameObject.FindObjectOfType <SpeechBubbleMaker>();
            uniwinc      = GameObject.FindObjectOfType <UniWindowController>();
            Node root    = new MenuNode();
            Node setting = new Node("せってい", 1);

            root.AddChild(setting);
            var setTransparent = new SwitchNode("背景透過中だよ", "背景透過してないよ", 1, uniwinc.isTransparent);

            setting.AddCallback(() =>
            {
                setTransparent.ON = uniwinc.isTransparent;
            });
            setTransparent.AddCallback(() =>
            {
                uniwinc.isTransparent = setTransparent.ON;
            });
            setting.AddChild(setTransparent);

            var setTopmost = new SwitchNode("最前面固定するよ", "最前面固定しないよ", 1, uniwinc.isTopmost);

            setting.AddCallback(() =>
            {
                setTopmost.ON = uniwinc.isTopmost;
            });
            setTopmost.AddCallback(() =>
            {
                uniwinc.isTopmost = setTopmost.ON;
            });
            setting.AddChild(setTopmost);

            var setTranslucent = new SwitchNode("半透明だよ", "半透明じゃないよ", 1, false);

            setTranslucent.AddCallback(() =>
            {
                canvasGroup.alpha = setTranslucent.ON ? 0.5f : 1.0f;
            });
            setting.AddChild(setTranslucent);

            var setRandspeak = new SwitchNode("話すよー", "黙ってるよ...", +1);

            setRandspeak.AddCallback(() =>
            {
                if (setRandspeak.ON)
                {
                    maker.StopSpeak();
                }
                else
                {
                    maker.StartSpeak();
                }
            });
            setting.AddChild(setRandspeak);
            Node remocon = new Node("リモコン", 1);
            // root.AddChild(remocon);
            Node right_off = new Node("明かりを消す?", 1);

            right_off.AddCallback(() =>
            {
                HttpCommunicator hc = new HttpCommunicator();
                var url             = "https://api.switch-bot.com/v1.0/devices/01-202101071744-43895891/commands";
                // hc.GetHttpAsync()
            });



            Node sensor = new Node("Sensor", 1);
            // root.AddChild(sensor);
            PythonExecutor pyexe = GameObject.FindObjectOfType <PythonExecutor>();

            socketServer.AddCommand("speak", mes =>
            {
                maker.GenerateFromThread(1, mes, 3, 1);
            });

            socketServer.AddCommand("long_speak", mes =>
            {
                maker.GenerateFromThread(1, mes, -1, 1);
            });

            socketServer.AddCommand("echo", mes =>
            {
                pyexe.SendCmd("nothing");
            });

            Node sensor_mes = new Node("Lauching...");

            sensor.AddChild(sensor_mes);
            pyexe.AddCommand("log", (mes) =>
            {
                Debug.Log("[python][log] " + mes);
            });

            sensor.AddCallback(() =>
            {
                sensor_mes.Text = "Lauching...";
                pyexe.ExecuteOnThread(); //実行
                Observable.Interval(TimeSpan.FromSeconds(1)).Subscribe(_ =>
                {
                    pyexe.p_WriteInputData("echo Message from C#");
                });
            });
            Node clock = new Node("Clock", 1);

            root.AddChild(clock);

            Node clock_display = new Node("--:--", 1);

            clock.AddChild(clock_display);

            IDisposable clock_update = null;

            clock.AddCallback(() =>
            {
                clock_update = Observable.Interval(TimeSpan.FromSeconds(0.1)).Subscribe(_ =>
                {
                    if (clock_display.speechBubble == null)
                    {
                        clock_update.Dispose();
                        return;
                    }
                    //clock_display.Text = DateTime.Now.ToShortTimeString();
                    clock_display.Text = DateTime.Now.ToLongTimeString();
                }).AddTo(this);
            });

            Node tool = new Node("Tool", 1);

            root.AddChild(tool);
            //Node bluetooth = new Node("Bluetooth\n ON");
            //tool.AddChild(bluetooth);
            Node pyexecutor_interface = new Node("pyexecutor");

            tool.AddChild(pyexecutor_interface);

            Node gui_start = new Node("GUIStart");

            pyexecutor_interface.AddChild(gui_start);

            pyexe.AddCommand("launched", (mes) =>
            {
                gui_start.Text = "GUI Launched";
            });

            gui_start.AddCallback(() =>
            {
                gui_start.Text = "GUI Started";
                pyexe.SendCmd("gui_start");
            });


            Node socketClientTest = new Node("SocketClient\nTest");

            socketClientTest.AddCallback(() =>
            {
                Task.Run(socketClient.ConnentionTest);
            });
            tool.AddChild(socketClientTest);

            Node shutdown = new Node("Shutdown");

            shutdown.AddCallback(() =>
            {
                #if UNITY_EDITOR
                UnityEditor.EditorApplication.isPlaying = false;
                #elif UNITY_STANDALONE
                UnityEngine.Application.Quit();
                #endif
            });
            tool.AddChild(shutdown);
            Node speaktest = new Node("speaktest");
            tool.AddChild(speaktest);
            Node title1 = new Node("精密計測工学2\n レポート");
            speaktest.AddChild(title1);
            // Node title2 = new Node("精密計測工学2");
            // speaktest.AddChild(title2);

            root.GenerateBubble(2);
        }
Ejemplo n.º 4
0
 private void configureChildren(MenuNode parent)
 {
     parent.AddChild(MenuNode.ForInput<MvcGettingStarted>(FubuMVCWorldKeys.GettingStarted));
 }