void CheckInit() { if (data == null) { var rulerGameObject = GameObject.Find("RulerData"); if (rulerGameObject == null) { rulerGameObject = new GameObject("RulerData"); rulerGameObject.hideFlags = HideFlags.DontUnloadUnusedAsset | HideFlags.DontSaveInBuild; data = rulerGameObject.AddComponent <RulerData>(); if (!Application.isPlaying) { EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); } } else { data = rulerGameObject.GetComponent <RulerData>(); } scrollPos = Vector2.zero; headerStyle = new GUIStyle(EditorStyles.label); headerStyle.alignment = TextAnchor.MiddleCenter; headerStyle.fontSize = 14; miniButtonStyle = new GUIStyle(EditorStyles.miniButton); boldStyle = new GUIStyle(EditorStyles.boldLabel); groupFoldoutStyle = new GUIStyle(EditorStyles.foldout); groupFoldoutStyle.fontStyle = FontStyle.Bold; labelStyle.fontSize = 14; labelStyle.fontStyle = FontStyle.Bold; labelStyle.normal.textColor = new Color(.8f, .8f, .8f); var backtexture = new Texture2D(1, 1); backtexture.wrapMode = TextureWrapMode.Repeat; backtexture.SetPixel(0, 0, new Color(0f, 0f, 0f, 0f)); backtexture.Apply(); labelStyle.normal.background = backtexture; toolbarStyle = new GUIStyle(EditorStyles.toolbarButton); toolbarStyle.fontSize = 11; toolbarStrings = new string[] { "Hide All", "Show All" }; toggleStyle = new GUIStyle(EditorStyles.toggle); toggleStyle.fixedWidth = 20; precisionStr = "0." + new string('0', data.precision); InstanceGUIContent(); } }
private void OnDestroy() { SceneView.onSceneGUIDelegate -= OnSceneGUI; data = null; selectionSet = null; newSet = null; deleteSet = null; selectionOrdered = null; }
void ResetData() { if (EditorUtility.DisplayDialog("Rulers Reset Data", "Are you sure you want reset?", "Yes", "No")) { var rulerGameObject = GameObject.Find("RulerData"); if (rulerGameObject != null) { DestroyImmediate(rulerGameObject); data = null; } CheckInit(); } }
private void OnHierarchyChange() { // manualy check to see if the scene has changed // if so reload the data if (currentScene != EditorSceneManager.GetActiveScene()) { currentScene = EditorSceneManager.GetActiveScene(); data = null; selectionSet.Clear(); newSet.Clear(); deleteSet.Clear(); selectionOrdered.Clear(); CheckInit(); } }