Assets/Editor/InvalidScriptScanner.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Assets/Editor/ScriptEditor/NewBieGuideScriptableObjectEditor.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Assets/Editor/ScriptEditor/NewBieGuideScriptableObjectEditor.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Assets/Editor/SpritePacking/SpriteSettings.asset | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Assets/Editor/UI/PSDTOUGUIProcessor.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Assets/Editor/InvalidScriptScanner.cs
@@ -24,7 +24,7 @@ /// <summary> /// 添加右键菜单项 /// </summary> [MenuItem("GameObject/扫描无效脚本", false, 20)] [MenuItem("GameObject/脚本/扫描无效脚本", false, 20)] private static void ScanInvalidScripts() { GameObject selectedObject = Selection.activeGameObject; @@ -311,7 +311,7 @@ /// <summary> /// 递归扫描所有子对象中的无效脚本 /// </summary> [MenuItem("GameObject/递归扫描所有无效脚本", false, 21)] [MenuItem("GameObject/脚本/递归扫描所有无效脚本", false, 21)] private static void ScanAllInvalidScriptsRecursively() { GameObject selectedObject = Selection.activeGameObject; @@ -404,7 +404,7 @@ /// <summary> /// 添加设置菜单项 /// </summary> [MenuItem("GameObject/无效脚本扫描设置", false, 22)] [MenuItem("GameObject/脚本/无效脚本扫描设置", false, 22)] private static void ShowSettings() { // 创建设置窗口 Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs
New file @@ -0,0 +1,182 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; using UnityEngine.UI; public class NewBieGuideEditorWindow : EditorWindow { [MenuItem("程序/引导编辑器")] public static void Create() { var window = GetWindow(typeof(NewBieGuideEditorWindow), false, "引导编辑器") as NewBieGuideEditorWindow; window.Show(); window.autoRepaintOnSceneChange = true; } private void OnGUI() { if (!Application.isPlaying) { //重新编辑 EditorGUILayout EditorGUILayout.BeginVertical(); GUILayout.Label("请先运行游戏"); EditorGUILayout.EndVertical(); return; } EditorGUILayout.BeginVertical(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("拷贝组件路径到剪切板")) { GameObject go = Selection.activeGameObject; if (go == null) { Debug.LogError("请先选择一个GameObject"); return; } // 获取 GameObject 的路径 string path = GetGameObjectPath(go); // 拷贝到剪切板 GUIUtility.systemCopyBuffer = path; Debug.Log("已拷贝到剪切板: " + path); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("重置所有引导")) { NewBieCenter.Instance.ResetAllGuides(); } if (GUILayout.Button("结束所有引导")) { NewBieCenter.Instance.CompleteAllGuides(); } EditorGUILayout.EndHorizontal(); DrawNewbieGuides(); EditorGUILayout.EndVertical(); } // 递归获取 GameObject 的路径 private static string GetGameObjectPath(GameObject obj) { if (obj == null) return string.Empty; if (obj.transform.parent == null) { return obj.name; } if (obj.transform.parent.name == "UIRoot") { // 如果父节点是 UIRoot,则返回当前节点的名称 return obj.name; } return GetGameObjectPath(obj.transform.parent.gameObject) + "/" + obj.name; } List<NewBieGuide> newbieGuides = null; private Vector2 scrollPosition; void DrawNewbieGuides() { if (newbieGuides == null) { newbieGuides = new List<NewBieGuide>(); var guides = GuideConfig.GetValues(); foreach (var config in guides) { newbieGuides.Add(new NewBieGuide(config.ID)); } } if (newbieGuides != null) { scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, false); foreach (var newbieGuide in newbieGuides) { EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); EditorGUILayout.LabelField("引导ID:" + newbieGuide.guideId); EditorGUILayout.Toggle("Completed", newbieGuide.completed); GUI.skin.button.normal.textColor = newbieGuide.guideId == NewBieCenter.Instance.currentGuide ? Color.red : Color.white; if (GUILayout.Button("开始")) { newbieGuide.Begin(); } GUI.skin.button.normal.textColor = Color.white; if (GUILayout.Button("完成")) { newbieGuide.Finish(); } if (GUILayout.Button("重置")) { newbieGuide.Reset(); } EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); } GUILayout.EndScrollView(); } } public class NewBieGuide { public int guideId; public bool completed { get { return NewBieCenter.Instance.completeGuidesBuf.Contains(guideId); } } public NewBieGuide(int _guideId) { guideId = _guideId; } public void Begin() { if (!NewBieCenter.Instance.CheckGuideCondition(guideId)) { Debug.LogError("引导条件不满足"); return; } NewBieCenter.Instance.StartNewBieGuide(guideId); } public void Finish() { NewBieCenter.Instance.FinishNewBieGuide(guideId); } public void Reset() { NewBieCenter.Instance.ResetGuide(guideId); } } } Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 710406c165328b24189405363e66239d timeCreated: 1511919350 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Assets/Editor/ScriptEditor/NewBieGuideScriptableObjectEditor.cs
New file @@ -0,0 +1,82 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; [CustomEditor(typeof(NewBieGuideScriptableObject))] public class NewBieGuideScriptableObjectEditor : Editor { //功能:1.是否功能开启,飞行目标 // 2.是否暂停主战场战斗 public override void OnInspectorGUI() { var guide = target as NewBieGuideScriptableObject; guide.stepId = EditorGUILayout.IntField("步骤ID", guide.stepId); guide.guideType = (GuideType)EditorGUILayout.EnumPopup("引导类型", guide.guideType); if (guide.guideType == GuideType.NewBie) { //点击引导 guide.UIElementPath = EditorGUILayout.TextField("点击目标路径", guide.UIElementPath); guide.clickPosition = EditorGUILayout.Vector2Field("镂空中心与目标的偏移量", guide.clickPosition); guide.clickSize = EditorGUILayout.Vector2Field("镂空半径", guide.clickSize); guide.tipPosition = EditorGUILayout.Vector2Field("提示语位置与目标的偏移量", guide.tipPosition); guide.arrowPosition = (NewBieGuideScriptableObject.ArrowPosition)EditorGUILayout.EnumPopup("引导箭头位置", guide.arrowPosition); guide.voice = EditorGUILayout.IntField("音效", guide.voice); guide.effect = EditorGUILayout.IntField("点击特效", guide.effect); guide.usherPosition = EditorGUILayout.Vector2Field("点击特效与目标的偏移量", guide.usherPosition); // guide.usherOrientation = (NewBieGuideScriptableObject.UsherOrientation)EditorGUILayout.EnumPopup("无效", guide.usherOrientation); // guide.usherAction = EditorGUILayout.IntField("无效", guide.usherAction); guide.clickAnyWhereComplete = EditorGUILayout.Toggle("点击任意位置完成引导", guide.clickAnyWhereComplete); guide.clickCompleteNoMask = EditorGUILayout.Toggle("点击任意位置完成引导(无蒙版模式)", guide.clickCompleteNoMask); } else if (guide.guideType == GuideType.Function) { //功能开启 guide.UIElementPath = EditorGUILayout.TextField("功能开启飞入终点", guide.UIElementPath); guide.clickPosition = EditorGUILayout.Vector2Field("镂空中心与目标的偏移量", guide.clickPosition); guide.clickSize = EditorGUILayout.Vector2Field("镂空半径", guide.clickSize); // guide.tipPosition = EditorGUILayout.Vector2Field("无效", guide.tipPosition); // guide.arrowPosition = (NewBieGuideScriptableObject.ArrowPosition)EditorGUILayout.EnumPopup("无效", guide.arrowPosition); guide.voice = EditorGUILayout.IntField("音效", guide.voice); // guide.effect = EditorGUILayout.IntField("无效", guide.effect); // guide.usherPosition = EditorGUILayout.Vector2Field("无效", guide.usherPosition); // guide.usherOrientation = (NewBieGuideScriptableObject.UsherOrientation)EditorGUILayout.EnumPopup("无效", guide.usherOrientation); // guide.usherAction = EditorGUILayout.IntField("无效", guide.usherAction); // guide.clickAnyWhereComplete = EditorGUILayout.Toggle("无效", guide.clickAnyWhereComplete); // guide.clickCompleteNoMask = EditorGUILayout.Toggle("无效", guide.clickCompleteNoMask); } else { //npc对话 guide.UIElementPath = EditorGUILayout.TextField("无效", guide.UIElementPath); guide.clickPosition = EditorGUILayout.Vector2Field("镂空中心与目标的偏移量", guide.clickPosition); guide.clickSize = EditorGUILayout.Vector2Field("镂空半径", guide.clickSize); // guide.tipPosition = EditorGUILayout.Vector2Field("无效", guide.tipPosition); // guide.arrowPosition = (NewBieGuideScriptableObject.ArrowPosition)EditorGUILayout.EnumPopup("无效", guide.arrowPosition); guide.voice = EditorGUILayout.IntField("音效", guide.voice); guide.effect = EditorGUILayout.IntField("引导MM外观(特效ID)", guide.effect); guide.usherOrientation = (NewBieGuideScriptableObject.UsherOrientation)EditorGUILayout.EnumPopup("引导小姐朝向", guide.usherOrientation); guide.usherAction = EditorGUILayout.IntField("引导小姐动作", guide.usherAction); guide.usherPosition = EditorGUILayout.Vector2Field("引导小姐位置", guide.usherPosition); // guide.clickAnyWhereComplete = EditorGUILayout.Toggle("无效", guide.clickAnyWhereComplete); // guide.clickCompleteNoMask = EditorGUILayout.Toggle("无效", guide.clickCompleteNoMask); } EditorGUILayout.HelpBox("引导步骤的文本内容在语言表中配置如 guide_new_1; 语言表未配置则不会显示", MessageType.Info); if (GUI.changed) { EditorUtility.SetDirty(target); serializedObject.ApplyModifiedProperties(); } } } Assets/Editor/ScriptEditor/NewBieGuideScriptableObjectEditor.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 9389d1a8a10fc6e41877f92c4b874d9f timeCreated: 1511794110 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Assets/Editor/SpritePacking/SpriteSettings.asset
@@ -79,28 +79,6 @@ maxTextureSize: 2048 textureCompression: 1 textureFormat: 50 - folderName: 8Words blockOffset: 1 enableRotation: 0 enableTightPacking: 0 padding: 4 readable: 0 generateMipMaps: 0 sRGB: 1 filterMode: 1 platformSettings: - name: Standalone maxTextureSize: 2048 textureCompression: 1 textureFormat: 4 - name: Android maxTextureSize: 2048 textureCompression: 1 textureFormat: 50 - name: iPhone maxTextureSize: 2048 textureCompression: 1 textureFormat: 50 - folderName: Common blockOffset: 1 enableRotation: 0 @@ -190,28 +168,6 @@ textureCompression: 1 textureFormat: 50 - folderName: icon16 blockOffset: 1 enableRotation: 0 enableTightPacking: 0 padding: 4 readable: 0 generateMipMaps: 0 sRGB: 1 filterMode: 1 platformSettings: - name: Standalone maxTextureSize: 2048 textureCompression: 1 textureFormat: 4 - name: Android maxTextureSize: 2048 textureCompression: 1 textureFormat: 50 - name: iPhone maxTextureSize: 2048 textureCompression: 1 textureFormat: 50 - folderName: Important blockOffset: 1 enableRotation: 0 enableTightPacking: 0 Assets/Editor/UI/PSDTOUGUIProcessor.cs
@@ -79,7 +79,7 @@ return result; } [UnityEditor.MenuItem("GameObject/生成UI脚本", false, 10)] [UnityEditor.MenuItem("GameObject/脚本/生成UI脚本", false, 10)] public static void GenerateUIScript() { GameObject go = Selection.activeGameObject;