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); }