void OnEnable() { UpdateTag(); myModel = (TextStyleMessage)target; EditorDemoText = myModel.GetComponent <Text>(); DemoGradient = myModel; myModel.DemoTag.localnub = AllName.IndexOf(myModel.DemoTag.TextType); }
public static void ShowCreatWindow(TextStyleMessage NowMessage, Text GetText) { if (IsOpne) { return; } EditorWindow window = GetWindow(typeof(EditorGUILayoutTextNow)); window.titleContent = new GUIContent("Save the current font style"); window.Show(); DemoGradient = NowMessage; EditorDemoText = GetText; }
void OnGUI() { if (_serializedObject == null) { return; } if (TypeStyleName == "自定义风格" || TypeStyleName == "所有风格") { EditorLock = true; } else { EditorLock = false; } if (AllName.Count <= 0) { return; } if (SaveText.Count <= 0) { return; } GUILayout.Space(20); _serializedObject.Update(); Text_serializedObject.Update(); EditorGUI.BeginChangeCheck(); EditorGUILayout.BeginHorizontal(); { if (GUILayout.Button("创建一个新的text风格", GUILayout.Width(150), GUILayout.Height(30))) { EditorGUILayoutPopup.ShowCreatWindow(); } if (GUILayout.Button("刷新", GUILayout.Width(150), GUILayout.Height(30))) { UpdateTag(); EditorApplication.update(); } if (GUILayout.Button("删除此类风格", GUILayout.Width(150), GUILayout.Height(30))) { } if (GUILayout.Button(LockName, GUILayout.Width(150), GUILayout.Height(30))) { SizeLock = !SizeLock; LockName = SizeLock?"解锁位置信息":"锁定位置信息"; } } EditorGUILayout.EndHorizontal(); GUILayout.Space(10); if (IsEditor) { Debug.Log(TypeStyleName); EditorGUILayout.PropertyField(TypeNameProperty); } EditorGUI.BeginDisabledGroup(AcitonBool); SaveNub = EditorGUILayout.Popup(SaveNub, AllName.ToArray()); EditorGUI.EndDisabledGroup(); EditorGroup = (TextGroup)SaveNub; if (AllName[SaveNub] != lastNub) { UpdateMessage(); } EditorGUI.BeginDisabledGroup(EditorLock); EditorGUILayout.BeginHorizontal(); { GUI.color = Color.green; EditorGUILayout.PropertyField(_OutLineProperty, true); EditorGUILayout.PropertyField(_ShadowProperty, true); EditorGUILayout.PropertyField(_GradientProperty, true); GUI.color = Color.white; } EditorGUILayout.EndHorizontal(); GUILayout.Space(20); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.PropertyField(bool_FontColorProperty, true); EditorGUILayout.PropertyField(_FontColorProperty, true); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.PropertyField(bool_FontSizeProperty, true); EditorGUILayout.PropertyField(_FontSizeProperty, true); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.PropertyField(bool_FontProperty, true); EditorGUILayout.PropertyField(_FontProperty, true); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.PropertyField(bool_RaycastProperty, true); EditorGUILayout.PropertyField(_RaycastProperty, true); } EditorGUILayout.EndHorizontal(); GUILayout.Space(10); EditorGUI.BeginDisabledGroup(SizeLock); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.PropertyField(bool_SizeProperty, true); EditorGUILayout.PropertyField(_SizeProperty, true); } EditorGUILayout.EndHorizontal(); GUILayout.Space(10); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.PropertyField(bool_PositionProperty, true); EditorGUILayout.PropertyField(_PositionProperty, true); } EditorGUILayout.EndHorizontal(); GUILayout.Space(10); EditorGUILayout.BeginHorizontal(); { if (GUILayout.Button("偏移组件", GUILayout.Width(150), GUILayout.Height(30))) { MovePosition(); } MoveVector = EditorGUILayout.Vector3Field("输入偏移量:", MoveVector); } EditorGUILayout.EndHorizontal(); EditorGUI.EndDisabledGroup(); if (_OutLineProperty.boolValue) { GUILayout.Space(20); GUILayout.Box("描边特效"); EditorGUILayout.PropertyField(_OutLine_StartColorProperty, true); EditorGUILayout.PropertyField(_EffectSizeProperty, true); EditorGUILayout.PropertyField(_ShadowVectorProperty, true); } if (_ShadowProperty.boolValue) { GUILayout.Space(20); GUILayout.Box("阴影特效"); EditorGUILayout.PropertyField(_Shadow_StartColorProperty, true); EditorGUILayout.PropertyField(_ShadowEffectSizeProperty, true); } if (_GradientProperty.boolValue) { GUILayout.Space(20); GUILayout.Box("渐变色特效"); EditorGUILayout.PropertyField(_GradientTypeProperty, true); if ((GradientType)_GradientTypeProperty.enumValueIndex == GradientType.Horizontal) { EditorGUILayout.PropertyField(_StartColorProperty, true); EditorGUILayout.PropertyField(_EndColorProperty, true); } if ((GradientType)_GradientTypeProperty.enumValueIndex == GradientType.Vertica) { EditorGUILayout.PropertyField(_StartColorProperty, true); EditorGUILayout.PropertyField(_EndColorProperty, true); } if ((GradientType)_GradientTypeProperty.enumValueIndex == GradientType.HorizontalMore) { EditorGUILayout.PropertyField(_StartColorProperty, true); EditorGUILayout.PropertyField(_CenterColorProperty, true); EditorGUILayout.PropertyField(_EndColorProperty, true); } } GUILayout.Space(20); EditorGUILayout.BeginHorizontal(); { if (!IsEditor) { EditorGUILayout.BeginVertical(); { if (GUILayout.Button("设置此类text风格", GUILayout.Width(250), GUILayout.Height(30))) { if (EditorUtility.DisplayDialog("提示消息", "确实要覆盖此类字体的样式吗", "确定", "取消")) { SetActionStyle(); //EditorApplication.SaveScene (); } } GUILayout.Space(10); if (GUILayout.Button("编辑此类text风格", GUILayout.Width(250), GUILayout.Height(30))) { AcitonBool = true; if (EditorUtility.DisplayDialog("编辑字体之前请保存当前场景的设置", "是否要保存当前场景设置?", "确定", "取消")) { EditorApplication.SaveScene(); } EditorText.Clear(); IsEditor = true; LastSceneName = EditorApplication.currentScene; EditorApplication.NewScene(); if (EditorDemoText == null) { Canvas[] GetDemotext = Resources.LoadAll <Canvas> (""); foreach (Canvas child in GetDemotext) { if (child.name == "DemoSytleEditor") { GameObject textdemo = GameObject.Instantiate(child.gameObject); EditorDemoText = textdemo.GetComponentInChildren <Text> (); DemoGradient = EditorDemoText.GetComponent <TextStyleMessage> (); break; } } Camera.main.clearFlags = CameraClearFlags.Color; Camera.main.backgroundColor = Color.white; TypeStyleName = MyText.TextMark; LastTypeName = TypeStyleName; NowTypename = TypeStyleName; } return; } GUILayout.Space(10); } EditorGUILayout.EndVertical(); EditorGUI.EndDisabledGroup(); GUILayout.Space(20); EditorGUILayout.BeginVertical(); { if (GUILayout.Button("刷新", GUILayout.Width(250), GUILayout.Height(30))) { GetObjType(lastNub); } ScrollView = GUILayout.BeginScrollView(ScrollView); { TextList.DoLayoutList(); } } EditorGUILayout.EndVertical(); GUILayout.EndScrollView(); } else { if (GUILayout.Button("返回", GUILayout.Width(250), GUILayout.Height(30))) { if (!CheckName(TypeStyleName)) { if (EditorUtility.DisplayDialog("提示消息", "名字已被使用,请重新定义风格名称", "确定")) { return; } } if (TypeStyleName != string.Empty) { MyText.TextMark = TypeStyleName; } AcitonBool = false; IsEditor = false; EditorApplication.OpenScene(LastSceneName); UpdateAssetName(); UpdateSytleMessage(AllName[SaveNub]); } if (EditorDemoText != null && DemoGradient != null) { SetFontDemoSytle(); EditorUtility.SetDirty(EditorDemoText.gameObject); DemoGradient.UpdateState(); } } } EditorGUILayout.EndHorizontal(); GUILayout.Space(20); if (GUILayout.Button("关闭窗口", GUILayout.Width(150), GUILayout.Height(20))) { this.Close(); } if (EditorGUI.EndChangeCheck()) { if (_serializedObject != null) { _serializedObject.ApplyModifiedProperties(); } Text_serializedObject.ApplyModifiedProperties(); } }