Files
tianrunCRM/Assets/CoolapeFrame/Editor/Inspectors/CLPanelLuaInspector.cs

175 lines
5.5 KiB
C#
Raw Permalink Normal View History

2020-07-04 14:41:25 +08:00
using UnityEngine;
using System.Collections;
using UnityEditor;
using System.IO;
using Coolape;
//页面视图
[CustomEditor(typeof(CLPanelLua), true)]
public class CLPanelLuaInspector : CLBehaviour4LuaInspector
{
private CLPanelLua panel;
Object panelData;
Object frameObj;
bool _isFinishInit = false;
public override void OnInspectorGUI()
{
panel = target as CLPanelLua;
panel.isNeedMask4Init = EditorGUILayout.Toggle ("Is Need Mask 4 Show", panel.isNeedMask4Init);
if (panel.isNeedMask4Init) {
panel.isNeedMask4InitOnlyOnce = EditorGUILayout.Toggle (" Only First Show", panel.isNeedMask4InitOnlyOnce);
}
base.OnInspectorGUI();
init();
GUILayout.BeginHorizontal();
{
EditorGUILayout.LabelField("背景框", GUILayout.Width(100));
frameObj = EditorGUILayout.ObjectField(frameObj, typeof(UnityEngine.Object), GUILayout.Width(125));
}
GUILayout.EndHorizontal();
string path = AssetDatabase.GetAssetPath(frameObj);
panel.frameName = Path.GetFileNameWithoutExtension(path);
EditorUtility.SetDirty(panel);
if (GUILayout.Button("增加渐显缩放效果"))
{
//instance.EffectList.Count
TweenScale ts = panel.gameObject.AddComponent<TweenScale>();
ts.from = Vector3.one * 1.5f;
ts.to = Vector3.one;
ts.duration = 0.5f;
ts.method = UITweener.Method.EaseInOut;
ts.enabled = false;
panel.EffectList.Add(ts);
TweenAlpha ta = panel.gameObject.AddComponent<TweenAlpha>();
ta.from = 0.1f;
ta.to = 1;
ta.duration = 0.5f;
ta.method = UITweener.Method.EaseInOut;
ta.enabled = false;
panel.EffectList.Add(ta);
panel.effectType = CLPanelBase.EffectType.synchronized;
EditorUtility.SetDirty(panel);
}
if (GUILayout.Button("增加渐显左移效果"))
{
//instance.EffectList.Count
TweenPosition ts = panel.gameObject.AddComponent<TweenPosition>();
ts.from = Vector3.left * 1920;
ts.to = Vector3.zero;
ts.duration = 0.5f;
ts.method = UITweener.Method.EaseInOut;
ts.enabled = false;
panel.EffectList.Add(ts);
TweenAlpha ta = panel.gameObject.AddComponent<TweenAlpha>();
ta.from = 0.1f;
ta.to = 1;
ta.duration = 0.5f;
ta.method = UITweener.Method.EaseInOut;
ta.enabled = false;
panel.EffectList.Add(ta);
panel.effectType = CLPanelBase.EffectType.synchronized;
EditorUtility.SetDirty(panel);
}
if (GUILayout.Button("增加渐显下移效果"))
{
//instance.EffectList.Count
TweenPosition ts = panel.gameObject.AddComponent<TweenPosition>();
ts.from = Vector3.up * 1080;
ts.to = Vector3.zero;
ts.duration = 0.5f;
ts.method = UITweener.Method.EaseInOut;
ts.enabled = false;
panel.EffectList.Add(ts);
TweenAlpha ta = panel.gameObject.AddComponent<TweenAlpha>();
ta.from = 0.1f;
ta.to = 1;
ta.duration = 0.5f;
ta.method = UITweener.Method.EaseInOut;
ta.enabled = false;
panel.EffectList.Add(ta);
panel.effectType = CLPanelBase.EffectType.synchronized;
EditorUtility.SetDirty(panel);
}
NGUIEditorTools.BeginContents();
{
GUILayout.Space(3);
// if (GUILayout.Button("Reload Lua")) {
// reloadLua();
// }
if (GUILayout.Button("Reset Atlas & Font")) {
if (panel.isNeedResetAtlase) {
// CLUIInit.self.init ();
CLUIUtl.resetAtlasAndFont(panel.transform, false);
// CLUIInit.self.clean();
}
}
if (GUILayout.Button("Save Panel 2 U3dType")) {
saveToU3d();
}
}
NGUIEditorTools.EndContents();
GUILayout.Space(5);
}
void reloadLua()
{
panel.setLua();
}
void saveToU3d()
{
GameObject go = AssetDatabase.LoadAssetAtPath("Assets/" + CLPathCfg.self.basePath + "/upgradeRes4Dev/priority/ui/panel/" + panel.name + ".prefab", typeof(GameObject)) as GameObject;
doSaveAsset(go);
EditorUtility.DisplayDialog("success", "cuccess!", "Okey");
}
public static void doSaveAsset(GameObject go)
{
CLPanelBase panel = go.GetComponent<CLPanelBase>();
if (panel == null)
return;
Debug.Log(panel.name);
if (panel.isNeedResetAtlase) {
CLUIUtl.resetAtlasAndFont(panel.transform, true);
PrefabUtility.SavePrefabAsset(go);
}
string dir = Application.dataPath + "/" + ECLEditorUtl.getPathByObject(go);
dir = Path.GetDirectoryName(dir);
ECLCreatAssetBundle4Update.createAssets4Upgrade(dir, panel.gameObject, true);
// 必须再取一次好像执行了上面一句方法后cell就会变成null
panel = go.GetComponent<CLPanelBase>();
if (panel != null && panel.isNeedResetAtlase) {
CLUIUtl.resetAtlasAndFont(panel.transform, false);
PrefabUtility.SavePrefabAsset(go);
}
}
void init()
{
if (!_isFinishInit || frameObj == null)
{
_isFinishInit = true;
if (!string.IsNullOrEmpty(panel.frameName))
{
string tmpPath = PStr.b().a("Assets/").a(CLPathCfg.self.basePath).a("/upgradeRes4Dev/priority/ui/other/").a(panel.frameName).a(".prefab").e();
frameObj = AssetDatabase.LoadMainAssetAtPath(tmpPath);
}
}
}
}