/// <summary> /// Enable a specific debug view. /// Pass null to disable debug views. /// You can browse available debug views with AllAvailableDebugViews property. /// </summary> /// <param name="data"></param> public void EnableView(DebugViewData data) { if (!CheckForCorrectlyLoaded()) { return; } SaveURPAssetIfPossible(); bool success; if (!data || data.RenderObjectsNormallyBefore) { success = PopURPAssetIfPossible(); } else { success = true; SetNewRenderPipelineAsset(_debugViewRenderPipelineAsset); } if (success) { _currentViewData = data; #if UNITY_EDITOR EditorPrefs.SetInt(DebugViewIndexEditorPref, _debugViewDatas.IndexOf(_currentViewData)); #endif } }
private void ValidateRenderPipeline() { if (!CheckForCorrectlyLoaded(false)) { return; } if (GetCurrentRenderPipelineAsset() == _debugViewRenderPipelineAsset) { const int notSetValue = -1; int savedDebugViewIndex = notSetValue; #if UNITY_EDITOR savedDebugViewIndex = EditorPrefs.GetInt(DebugViewIndexEditorPref, notSetValue); #endif if (savedDebugViewIndex == notSetValue || savedDebugViewIndex >= _debugViewDatas.Count) { // load a default view that can use the debug view render pipeline _currentViewData = _debugViewDatas.FirstOrDefault(data => !data.RenderObjectsNormallyBefore); } else { _currentViewData = _debugViewDatas[savedDebugViewIndex]; } } }
private void EditorApplicationOnPlayModeStateChanged(PlayModeStateChange stateChange) { if (stateChange == PlayModeStateChange.ExitingEditMode) { PopURPAssetIfPossible(); } else if (stateChange == PlayModeStateChange.EnteredEditMode) { _currentViewData = null; } }