private void Load() { var prefab = Resources.Load <PinnedUIRoot>(SRDebugPaths.PinnedUIPrefabPath); if (prefab == null) { Debug.LogError("[SRDebugger.PinnedUI] Error loading ui prefab"); return; } var instance = SRInstantiate.Instantiate(prefab); instance.CachedTransform.SetParent(CachedTransform, false); _uiRoot = instance; UpdateAnchors(); SRDebug.Instance.PanelVisibilityChanged += OnDebugPanelVisibilityChanged; Service.Options.OptionsUpdated += OnOptionsUpdated; Service.Options.OptionsValueUpdated += OptionsOnPropertyChanged; if (OptionsCanvasCreated != null) { OptionsCanvasCreated(_uiRoot.Canvas.GetComponent <RectTransform>()); } }
public void AddTab(SRTab tab, bool visibleInSidebar = true) { tab.CachedTransform.SetParent(TabContentsContainer, false); tab.CachedGameObject.SetActive(false); if (visibleInSidebar) { // Create a tab button for this tab var button = SRInstantiate.Instantiate(TabButtonPrefab); button.CachedTransform.SetParent(TabButtonContainer, false); button.TitleText.text = tab.Title.ToUpper(); if (tab.IconExtraContent != null) { var extraContent = SRInstantiate.Instantiate(tab.IconExtraContent); extraContent.SetParent(button.ExtraContentContainer, false); } button.IconStyleComponent.StyleKey = tab.IconStyleKey; button.IsActive = false; button.Button.onClick.AddListener(() => MakeActive(tab)); tab.TabButton = button; } _tabs.Add(tab); SortTabs(); if (_tabs.Count == 1) { ActiveTab = tab; } }
private void Load() { var popoverPrefab = Resources.Load <BugReportPopoverRoot>(SRDebugPaths.BugReportPopoverPath); var sheetPrefab = Resources.Load <BugReportSheetController>(SRDebugPaths.BugReportSheetPath); if (popoverPrefab == null) { Debug.LogError("[SRDebugger] Unable to load bug report popover prefab"); return; } if (sheetPrefab == null) { Debug.LogError("[SRDebugger] Unable to load bug report sheet prefab"); return; } _popover = SRInstantiate.Instantiate(popoverPrefab); _popover.CachedTransform.SetParent(CachedTransform, false); _sheet = SRInstantiate.Instantiate(sheetPrefab); _sheet.CachedTransform.SetParent(_popover.Container, false); _sheet.SubmitComplete = SubmitComplete; _sheet.CancelPressed = CancelPressed; _sheet.TakingScreenshot = TakingScreenshot; _sheet.ScreenshotComplete = ScreenshotComplete; _popover.CachedGameObject.SetActive(false); }
private static DataBoundControl CreateDataControl(OptionDefinition from, string categoryPrefix = null) { var prefab = _dataControlPrefabs.FirstOrDefault(p => p.CanBind(@from.Property.PropertyType, !from.Property.CanWrite)); if (prefab == null) { return(null); } var instance = SRInstantiate.Instantiate(prefab); try { var n = from.Name; // Remove category name from the start of the property name if (!string.IsNullOrEmpty(categoryPrefix) && n.StartsWith(categoryPrefix)) { n = n.Substring(categoryPrefix.Length); } instance.Bind(n, from.Property); instance.Option = from; } catch (Exception e) { Debug.LogException(e); Object.Destroy(instance); instance = null; } return(instance); }
protected void CreateCategory(string title, List <OptionDefinition> options) { options.Sort((d1, d2) => d1.SortPriority.CompareTo(d2.SortPriority)); var instance = SRInstantiate.Instantiate(CategoryGroupPrefab); instance.CachedTransform.SetParent(ContentContainer, false); instance.Header.text = title; foreach (var option in options) { var control = OptionControlFactory.CreateControl(option, title); if (control == null) { Debug.LogError("[SRDebugger.OptionsTab] Failed to create option control for {0}".Fmt(option.Name)); continue; } control.CachedTransform.SetParent(instance.Container, false); control.IsSelected = Service.PinnedUI.HasPinned(option); control.SelectionModeEnabled = false; _options.Add(option, control); _controls.Add(control); } }
private static DataBoundControl CreateDataControl(OptionDefinition from, string categoryPrefix = null) { var prefab = _dataControlPrefabs.FirstOrDefault(p => p.CanBind(from.Property.PropertyType)); if (prefab == null) { Debug.LogWarning("[SRDebugger.OptionsTab] Can't find data control for type {0}".Fmt(from.Property.PropertyType)); return(null); } var instance = SRInstantiate.Instantiate(prefab); try { var n = from.Name; // Remove category name from the start of the property name if (!string.IsNullOrEmpty(categoryPrefix) && n.StartsWith(categoryPrefix)) { n = n.Substring(categoryPrefix.Length); } instance.Bind(n, from.Property); } catch (Exception e) { Debug.LogError("[SRDebugger.Options] Error binding to property {0}".Fmt(from.Name)); Debug.LogException(e); Object.Destroy(instance); instance = null; } return(instance); }
private void CreateTrigger() { var prefab = Resources.Load <TriggerRoot>(SRDebugPaths.TriggerPrefabPath); if (prefab == null) { Debug.LogError("[SRDebugger] Error loading trigger prefab"); return; } _trigger = SRInstantiate.Instantiate(prefab); _trigger.CachedTransform.SetParent(CachedTransform, true); SetTriggerPosition(_trigger.TriggerTransform, _position); switch (Settings.Instance.TriggerBehaviour) { case Settings.TriggerBehaviours.TripleTap: { _trigger.TripleTapButton.onClick.AddListener(OnTriggerButtonClick); _trigger.TapHoldButton.gameObject.SetActive(false); break; } case Settings.TriggerBehaviours.TapAndHold: { _trigger.TapHoldButton.onLongPress.AddListener(OnTriggerButtonClick); _trigger.TripleTapButton.gameObject.SetActive(false); break; } case Settings.TriggerBehaviours.DoubleTap: { _trigger.TripleTapButton.RequiredTapCount = 2; _trigger.TripleTapButton.onClick.AddListener(OnTriggerButtonClick); _trigger.TapHoldButton.gameObject.SetActive(false); break; } default: throw new Exception("Unhandled TriggerBehaviour"); } SRDebuggerUtil.EnsureEventSystemExists(); UnityEngine.SceneManagement.SceneManager.activeSceneChanged += OnActiveSceneChanged; if (Settings.Instance.ErrorNotification) { _consoleService = SRServiceManager.GetService <IConsoleService>(); _consoleService.Error += OnError; } }
private InfoBlock CreateBlock(string title) { var block = SRInstantiate.Instantiate(InfoBlockPrefab); block.Title.text = title; block.CachedTransform.SetParent(LayoutContainer, false); return(block); }
private static ActionControl CreateActionControl(OptionDefinition from, string categoryPrefix = null) { var control = SRInstantiate.Instantiate(_actionControlPrefab); if (control == null) { Debug.LogWarning("[SRDebugger.OptionsTab] Error creating action control from prefab"); return(null); } control.SetMethod(from.Name, from.Method); return(control); }
protected override void Start() { base.Start(); var sheet = SRInstantiate.Instantiate(BugReportSheetPrefab); sheet.IsCancelButtonEnabled = false; // Callbacks when taking screenshot will hide the debug panel so it is not present in the image sheet.TakingScreenshot = TakingScreenshot; sheet.ScreenshotComplete = ScreenshotComplete; sheet.CachedTransform.SetParent(Container, false); }
protected override void Start() { base.Start(); _hasStarted = true; // Loads all available tabs from resources var tabs = Resources.LoadAll <SRTab>("SRDebugger/UI/Prefabs/Tabs"); var defaultTabs = Enum.GetNames(typeof(DefaultTabs)); foreach (var srTab in tabs) { var enabler = srTab.GetComponent(typeof(IEnableTab)) as IEnableTab; if (enabler != null && !enabler.IsEnabled) { continue; } if (defaultTabs.Contains(srTab.Key)) { var tabValue = Enum.Parse(typeof(DefaultTabs), srTab.Key); if (Enum.IsDefined(typeof(DefaultTabs), tabValue) && Settings.Instance.DisabledTabs.Contains((DefaultTabs)tabValue)) { continue; } } TabController.AddTab(SRInstantiate.Instantiate(srTab)); } // Add about tab (has no button, accessed via "Stompy" logo if (AboutTab != null) { _aboutTabInstance = SRInstantiate.Instantiate(AboutTab); TabController.AddTab(_aboutTabInstance, false); } // Open active tab (set before panel loaded), or default tab from settings var defaultTab = _activeTab ?? Settings.Instance.DefaultTab; if (!OpenTab(defaultTab)) { TabController.ActiveTab = TabController.Tabs.FirstOrDefault(); } }
private void Load() { var prefab = Resources.Load <PinEntryControl>(SRDebugPaths.PinEntryPrefabPath); if (prefab == null) { Debug.LogError("[PinEntry] Unable to load pin entry prefab"); return; } _pinControl = SRInstantiate.Instantiate(prefab); _pinControl.CachedTransform.SetParent(CachedTransform, false); _pinControl.Hide(); _pinControl.Complete += PinControlOnComplete; }
private Row CreateRow() { var item = new Row(); var row = SRInstantiate.Instantiate(ItemPrefab); item.Rect = row; item.View = row.GetComponent(typeof(IVirtualView)) as IVirtualView; if (RowStyleSheet != null || AltRowStyleSheet != null || SelectedRowStyleSheet != null) { item.Root = row.gameObject.GetComponentOrAdd <StyleRoot>(); item.Root.StyleSheet = RowStyleSheet; } row.SetParent(rectTransform, false); return(item); }
private void Load() { var prefab = Resources.Load <DebugPanelRoot>(SRDebugPaths.DebugPanelPrefabPath); if (prefab == null) { Debug.LogError("[SRDebugger] Error loading debug panel prefab"); return; } _debugPanelRootObject = SRInstantiate.Instantiate(prefab); _debugPanelRootObject.name = "Panel"; _debugPanelRootObject.CachedTransform.SetParent(Hierarchy.Get("SRDebugger"), true); DontDestroyOnLoad(_debugPanelRootObject); SRDebuggerUtil.EnsureEventSystemExists(); }
private void Load() { var prefab = Resources.Load <PinnedUIRoot>(SRDebugPaths.PinnedUIPrefabPath); if (prefab == null) { Debug.LogError("[SRDebugger.PinnedUI] Error loading ui prefab"); return; } var instance = SRInstantiate.Instantiate(prefab); instance.CachedTransform.SetParent(CachedTransform, false); _uiRoot = instance; UpdateAnchors(); SRDebug.Instance.PanelVisibilityChanged += OnDebugPanelVisibilityChanged; SROptions.Current.PropertyChanged += OptionsOnPropertyChanged; }
private void CreateTrigger() { var prefab = Resources.Load <TriggerRoot>(SRDebugPaths.TriggerPrefabPath); if (prefab == null) { Debug.LogError("[SRDebugger] Error loading trigger prefab"); return; } _trigger = SRInstantiate.Instantiate(prefab); _trigger.CachedTransform.SetParent(CachedTransform, true); SetTriggerPosition(_trigger.TriggerTransform, _position); switch (Settings.Instance.TriggerBehaviour) { case Settings.TriggerBehaviours.TripleTap: { _trigger.TripleTapButton.onClick.AddListener(OnTriggerButtonClick); _trigger.TapHoldButton.gameObject.SetActive(false); break; } case Settings.TriggerBehaviours.TapAndHold: { _trigger.TapHoldButton.onLongPress.AddListener(OnTriggerButtonClick); _trigger.TripleTapButton.gameObject.SetActive(false); break; } default: throw new Exception("Unhandled TriggerBehaviour"); } SRDebuggerUtil.EnsureEventSystemExists(); }
private void Load() { var prefab = Resources.Load <DockConsoleRoot>(SRDebugPaths.DockConsolePrefabPath); if (prefab == null) { Debug.LogError("[PinEntry] Unable to load pin entry prefab"); return; } _consoleRoot = SRInstantiate.Instantiate(prefab); _consoleRoot.CachedTransform.SetParent(CachedTransform, false); if (!_isVisible) { _consoleRoot.CachedGameObject.SetActive(false); } if (!_isExpanded) { _consoleRoot.SetDropdownVisibility(false); } }