110 lines
3.3 KiB
C#
110 lines
3.3 KiB
C#
using System.Collections.Generic;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
using System.IO;
|
|
using TMPro;
|
|
using UnityEngine.UI;
|
|
using BF;
|
|
using System;
|
|
using UnityEngine.TextCore.LowLevel;
|
|
using System.Text;
|
|
|
|
namespace BFEditor.Resource
|
|
{
|
|
public class LocalizeInputWindow : EditorWindow
|
|
{
|
|
private Func<string, string[], bool, bool, string> onClose;
|
|
public static LocalizeInputWindow Instance = null;
|
|
public LocalizeInputWindow() { Instance = this; }
|
|
|
|
[SerializeField]
|
|
public string key;
|
|
[SerializeField]
|
|
public List<string> paramList = new List<string>();
|
|
[SerializeField]
|
|
public string msg;
|
|
[SerializeField]
|
|
public bool ignoreValueCheck;
|
|
[SerializeField]
|
|
public bool addlocalize;
|
|
|
|
private SerializedObject obj;
|
|
private SerializedProperty keyProperty;
|
|
private SerializedProperty paramListProperty;
|
|
private SerializedProperty msgProperty;
|
|
private SerializedProperty ignoreValueCheckProperty;
|
|
private SerializedProperty addlocalizeProperty;
|
|
|
|
private GUIStyle msgStyle = new GUIStyle();
|
|
|
|
static public void Init(Func<string, string[], bool, bool, string> onClose)
|
|
{
|
|
GetWindowWithRect(typeof(LocalizeInputWindow), new Rect(Screen.width / 2, Screen.height / 2, 800, 800));
|
|
Instance.onClose = onClose;
|
|
}
|
|
|
|
private void Awake()
|
|
{
|
|
if (null == obj)
|
|
obj = new SerializedObject(this);
|
|
|
|
keyProperty = obj.FindProperty("key");
|
|
paramListProperty = obj.FindProperty("paramList");
|
|
msgProperty = obj.FindProperty("msg");
|
|
ignoreValueCheckProperty = obj.FindProperty("ignoreValueCheck");
|
|
addlocalizeProperty = obj.FindProperty("addlocalize");
|
|
|
|
msgStyle.fontSize = 30;
|
|
msgStyle.normal.textColor = Color.red;
|
|
msgStyle.alignment = TextAnchor.MiddleCenter;
|
|
}
|
|
|
|
private void OnGUI()
|
|
{
|
|
obj.Update();
|
|
|
|
EditorGUI.BeginChangeCheck();
|
|
|
|
EditorGUILayout.PropertyField(keyProperty);
|
|
EditorGUILayout.PropertyField(paramListProperty, true);
|
|
ignoreValueCheckProperty.boolValue = EditorGUILayout.Toggle("忽略值检查", ignoreValueCheckProperty.boolValue);
|
|
// addlocalizeProperty.boolValue = EditorGUILayout.Toggle("是否添加Localize组件", addlocalizeProperty.boolValue);
|
|
//Debug.Log(ignoreValueCheckProperty.boolValue);
|
|
if (GUILayout.Button("确定"))
|
|
{
|
|
if (null != onClose)
|
|
{
|
|
key = key.ToUpper();
|
|
string msg = onClose(key, paramList.ToArray(), ignoreValueCheckProperty.boolValue, /*addlocalizeProperty.boolValue*/false);
|
|
if (msg.Equals("success"))
|
|
Close();
|
|
else
|
|
ShowMsg(msg);
|
|
}
|
|
return;
|
|
}
|
|
EditorGUILayout.BeginHorizontal();
|
|
EditorGUILayout.LabelField(msgProperty.stringValue, msgStyle);
|
|
EditorGUILayout.EndHorizontal();
|
|
|
|
if (EditorGUI.EndChangeCheck() && null != obj)
|
|
obj.ApplyModifiedProperties();
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
// Instance.Focus();
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
|
|
}
|
|
|
|
private void ShowMsg(string msg)
|
|
{
|
|
this.msg = msg;
|
|
}
|
|
}
|
|
}
|