Example #1
0
        public bool TryGetValidTooltipRig(ControllerButton button, out TooltipRig rig)
        {
            rig = default(TooltipRig);
            if (!EnumArrayBase <ControllerButton> .StaticIsValidIndex((int)button))
            {
                return(false);
            }

            var model       = VRModule.GetDeviceState(m_viveRole.GetDeviceIndex()).deviceModel;
            var rigSetAsset = (TooltipRigAsset)null;

            if (m_customTooltipRigSet != null)
            {
                rigSetAsset = m_customTooltipRigSet[(int)model];
            }

            if (rigSetAsset != null || TooltipRigAsset.TryGetDefaultAsset(model, out rigSetAsset))
            {
                var entries = rigSetAsset.rigEntries;
                if (entries != null && entries.Count > 0)
                {
                    for (int i = 0, imax = entries.Count; i < imax; ++i)
                    {
                        var entry = entries[i];
                        if (entry.button == button)
                        {
                            rig = entry.tooltipRig;
                            return(true);
                        }
                    }
                }
            }

            return(false);
        }
        public static bool TryGetDefaultAsset(VRModuleDeviceModel model, out TooltipRigAsset rigAsset)
        {
            if (!EnumArrayBase <VRModuleDeviceModel> .StaticIsValidIndex((int)model))
            {
                rigAsset = null; return(false);
            }

            if (s_defaultTooltipRigSets == null)
            {
                s_defaultTooltipRigSets = new EnumArray <VRModuleDeviceModel, LoadedRigSet>();
            }

            var loadedRigSet = s_defaultTooltipRigSets[(int)model];

            if (!loadedRigSet.haveLoaded)
            {
                TooltipRigAsset asset = null;
                int             modelNameIndex;
                var             info = EnumUtils.GetDisplayInfo(typeof(VRModuleDeviceModel));
                if (info.value2displayedIndex.TryGetValue((int)model, out modelNameIndex))
                {
                    asset = Resources.Load <TooltipRigAsset>("TooltipRig/VIUTooltipRig" + info.displayedNames[modelNameIndex]);
                }

                s_defaultTooltipRigSets[(int)model] = loadedRigSet = new LoadedRigSet()
                {
                    haveLoaded = true,
                    asset      = asset,
                };
            }

            if (loadedRigSet.asset == null)
            {
                rigAsset = null; return(false);
            }

            rigAsset = loadedRigSet.asset;
            return(rigAsset != null);
        }