コード例 #1
0
ファイル: OVMsgBoxMenu.cs プロジェクト: HeroVR/Omniverse
    public bool UpdateItemCmd(string name, string cmd)
    {
        for (int i = 0; i < _Items.Count; ++i)
        {
            OVMenuItem item = _Items[i];
            if (item.name == name)
            {
                item.cmd     = cmd;
                item.dynaTxt = (item.txtCompo && UpdateText(item.txtCompo, cmd));
                return(true);
            }
        }

        return(false);
    }
コード例 #2
0
ファイル: OVMsgBoxMenu.cs プロジェクト: HeroVR/Omniverse
    OVMenuItem CreateItem(OVMenuItemDef def)
    {
        OVMenuItem item        = null;
        string     prefab_file = "OV" + def.type;
        GameObject prefab      = Resources.Load <GameObject>(prefab_file);

        if (prefab)
        {
            GameObject go = GameObject.Instantiate(prefab, _BG) as GameObject;

            item       = new OVMenuItem();
            item.go    = go;
            item.cmd   = def.cmd;
            item.name  = def.name;
            item.msgId = def.msgid;

            // Rect
            ApplyTransRect(go.transform as RectTransform, def.x, def.y, def.w, def.h, def.rot);

            // Color
            if (def.color != null && def.color.Length != 0)
            {
                Image img = go.GetComponent <Image>();
                if (img)
                {
                    img.color = StringToColor(def.color);
                }
            }

            // Text
            Text txt_compo = go.GetComponent <Text>();
            if (null == txt_compo)
            {
                Transform txt_trans = go.transform.FindChild("Text");
                if (txt_trans)
                {
                    txt_compo = txt_trans.GetComponent <Text>();
                }
            }

            item.txtCompo = txt_compo;
            item.dynaTxt  = (txt_compo && UpdateText(txt_compo, def.cmd));

            _Items.Add(item);
        }
        return(item);
    }
コード例 #3
0
ファイル: OVMsgBoxMenu.cs プロジェクト: HeroVR/Omniverse
    protected override void Start()
    {
        base.Start();

        _nTime = 0;

        _BG = transform.Find("BG");
        if (null == _BG)
        {
            _BG = transform;
        }

        string    path = OVSDK.GetUserInfo().sConsolePath + "\\" + _JsonFilePrefix + "_unity.json";
        string    json = ReadFile(path);
        OVMenuDef def;

        def.x     = def.y = def.w = def.h = 0;
        def.items = null;
        try
        {
            def       = JsonUtility.FromJson <OVMenuDef>(json);
            _MenuName = def.name;
            def.items = OVJsonHelper.FromJson <OVMenuItemDef>(json);
        }
        catch (Exception e) {
            Debug.Log("Parse json menu-items failed: " + e.Message);
        }
        if (null == _MenuName)
        {
            _MenuName = "";
        }
        if (def.w > 0 && def.h > 0)
        {
            ApplyTransRect(_BG as RectTransform, def.x, def.y, def.w, def.h, 0, false);
        }

        for (int i = 0; def.items != null && i < def.items.Length; ++i)
        {
            OVMenuItem item = CreateItem(def.items[i]);
            if (item != null)
            {
                if (def.items[i].type == "Button")
                {
                    item.directClose = (0 != def.items[i].close);
                    OVButton btn = item.go.gameObject.GetComponent <OVButton>();
                    btn.m_OnClick.AddListener(delegate(){ this.OnClick(item.go.gameObject); });
                    // OVUIEventListener.Get(item.go.gameObject).onClick += this.OnClick;
                }
                else if (def.items[i].type == "Slider")
                {
                    Slider slider = item.go.GetComponent <Slider>();
                    if (slider != null)
                    {
                        if (item.name == "OmniCoupleRate")
                        {
                            _PreOmniCoupleRate = OVSDK.GetUserOmniCoupleRate();
                            slider.value       = OVSDK.GetOmniCoupleRate();
                        }
                        slider.onValueChanged.AddListener(item.OnSliderValueChange);
                    }
                }
                else if (def.items[i].type == "Toggle")
                {
                    Toggle toggle = item.go.GetComponent <Toggle>();
                    if (toggle != null)
                    {
                        if (item.name == "OmniCoupleMode")
                        {
                            _PreOmniCoupleRate = OVSDK.GetUserOmniCoupleRate();
                            toggle.isOn        = OVSDK.GetOmniCoupleRate() < 0.5f ? false : true;
                        }
                        toggle.onValueChanged.AddListener(item.OnToggleStateChange);
                    }
                }
            }
        }

        _AllMsgBoxJson.Add(this);
        refreshButtonsState();
    }