public static void LoadUss(string uss) { try { UssValues.Reset(); var result = UssParser.Parse(uss); styles = new List <UssStyleDefinition>(result.styles); foreach (var pair in result.values) { UssValues.SetValue(pair.Key, pair.Value); } applyTime = DateTime.Now; Apply(GameObject.Find("Canvas")); hasError = false; applied = true; #if UNITY_EDITOR UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty( UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene()); #endif } catch (Exception e) { hasError = true; Debug.LogException(e); } }
public void OnSelectorChanged(string text) { var conditions = UssParser.ParseConditions(text); var go = UssStyleModifier.FindObjects( UssRoot.FindRootInScene().gameObject, conditions); foreach (var c in prevObjects) { if (go.Contains(c.gameObject)) { continue; } c.CrossFadeColor(Color.white, 0, true, true); } prevObjects.Clear(); foreach (var g in go) { foreach (var c in g.GetComponentsInChildren <Graphic>()) { c.CrossFadeColor(new Color32(255, 64, 64, 255), 0.5f, true, true); prevObjects.Add(c); } } selectedObjects.text = go.Length + " object(s)"; }
void OnGUI() { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("INSTANT EVAL"); if (GUILayout.Button("run!")) { /* * var result = UssParser.Parse(script); * UssStyleModifier.Apply( * UssRoot.FindRootInScene().gameObject, * result.styles); */ UssStyleModifier.LoadUss(script); } EditorGUILayout.EndHorizontal(); script = GUI.TextArea(new Rect(0, 30, position.width, 300), script); var editor = (TextEditor)GUIUtility.GetStateObject(typeof(TextEditor), GUIUtility.keyboardControl); if (string.IsNullOrEmpty(editor.SelectedText) == false) { if (prevSelectionText == editor.SelectedText) { return; } var result = UssParser.ParseConditions(editor.SelectedText); Selection.objects = UssStyleModifier.FindObjects( UssRoot.FindRootInScene().gameObject, result); prevSelectionText = editor.SelectedText; } }
public static UssStyleCondition[] ParseConditions(string src) { src += " "; // padding var p = new UssParser(); p.ParseAll(UssLexer.Parse(src)); return(p.conditions.ToArray()); }
public void OnStyleSheetChanged(string text) { try { var styles = UssParser.Parse(text); UssStyleModifier.Apply( UssRoot.FindRootInScene().gameObject, styles.styles); errorMessage.CrossFadeColor(Color.white, 0.5f, true, true); errorMessage.text = "SUCCESS"; } catch (Exception e) { errorMessage.CrossFadeColor(Color.red, 0.5f, true, true); errorMessage.text = e.Message; } }
void OnGUI() { EditorGUILayout.BeginHorizontal(GUI.skin.FindStyle("Toolbar")); query = GUILayout.TextField(query, GUI.skin.FindStyle("ToolbarSeachTextField")); EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); EditorGUILayout.LabelField(selections + " object(s) found."); if (GUI.changed && string.IsNullOrEmpty(query) == false) { var conditions = UssParser.ParseConditions(query); if (conditions.Length == 0) { return; } Selection.objects = UssStyleModifier.FindObjects( UssRoot.FindRootInScene().gameObject, conditions); selections = Selection.objects.Length; } }
public static void ApplyUss(string uss) { try { var result = UssParser.Parse(uss); styles = new List <UssStyleDefinition>(result.styles); foreach (var pair in result.values) { UssValues.SetValue(pair.Key, pair.Value); } Apply(UssRoot.FindRootInScene().gameObject); #if UNITY_EDITOR UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty( UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene()); #endif } catch (Exception e) { Debug.LogException(e); } }