소스 검색

Design Tool

LiuQilin 8 년 전
부모
커밋
7e8f04704a

BIN
.vs/MyLovelyGarden/v14/.suo


BIN
Assets/Resource/Logo.unity


+ 2 - 2
Assets/Resource/XML/PlayerConfig.xml

@@ -1,8 +1,8 @@
 <PlayerConfig>
-  <Version value="219" />
+  <Version value="224" />
 
   <ID value="Default" />
-////  <TutorialA value="1" />
+////  <TutorialA value="0" />
   <TutorialB value="1" />
 ////  <TutorialC value="0" />
   <TutorialIndexA value="1" />

+ 83 - 1
Assets/Script/Editor/EditorBundle.cs

@@ -4,23 +4,105 @@ using UnityEngine.Events;
 
 using System.Collections;
 
-public class Bundle 
+[CustomEditor(typeof(Bundle))]
+public class EditorBundle : Editor 
 {
+    #region 变量
+
+    public static Bundle Script;
+
+    #endregion
+
+    public void OnEnable()
+    {
+        Script = (Bundle) target;
+
+        Bundle.Instance = Script;
+    }
+
+    public static void Tag()
+    {
+        string path;
+
+        AssetImporter assetImporter;
+
+        for (int i = 0; i < Script.UiList.Count; i++)
+        {
+            path = AssetDatabase.GetAssetPath(Script.UiList[i]);
+
+            assetImporter = AssetImporter.GetAtPath(path);
+
+            assetImporter.assetBundleName = "ui";
+        }
+
+        for (int i = 0; i < Script.AtlasList.Count; i++)
+        {
+            path = AssetDatabase.GetAssetPath(Script.AtlasList[i]);
+
+            assetImporter = AssetImporter.GetAtPath(path);
+
+            assetImporter.assetBundleName = "atlas";
+        }
+
+        for (int i = 0; i < Script.EffectList.Count; i++)
+        {
+            path = AssetDatabase.GetAssetPath(Script.EffectList[i]);
+
+            assetImporter = AssetImporter.GetAtPath(path);
+
+            assetImporter.assetBundleName = "effect";
+        }
+
+        for (int i = 0; i < Script.AudioList.Count; i++)
+        {
+            path = AssetDatabase.GetAssetPath(Script.AudioList[i]);
+
+            assetImporter = AssetImporter.GetAtPath(path);
+
+            assetImporter.assetBundleName = "audio";
+        }
+
+        for (int i = 0; i < Script.SceneList.Count; i++)
+        {
+            path = AssetDatabase.GetAssetPath(Script.SceneList[i]);
+
+            assetImporter = AssetImporter.GetAtPath(path);
+
+            assetImporter.assetBundleName = "scene";
+        }
+
+        for (int i = 0; i < Script.ConfigList.Count; i++)
+        {
+            path = AssetDatabase.GetAssetPath(Script.ConfigList[i]);
+
+            assetImporter = AssetImporter.GetAtPath(path);
+
+            assetImporter.assetBundleName = "config";
+        }
+    }
+
+
     [MenuItem("DashGame/Bundle/PackAndroid")]
     public static void PackAndroid()
     {
+        Tag();
+
         BuildPipeline.BuildAssetBundles(Application.streamingAssetsPath + "/Bundle/Android", BuildAssetBundleOptions.None, BuildTarget.Android);
     }
 
     [MenuItem("DashGame/Bundle/PackIOS")]
     public static void PackIOS()
     {
+        Tag();
+
         BuildPipeline.BuildAssetBundles(Application.streamingAssetsPath + "/Bundle/IOS", BuildAssetBundleOptions.None, BuildTarget.iOS);
     }
 
     [MenuItem("DashGame/Bundle/PackWindows")]
     public static void PackWindows()
     {
+        Tag();
+
         BuildPipeline.BuildAssetBundles(Application.streamingAssetsPath + "/Bundle/Windows", BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
     }
 }

+ 0 - 1
Assets/Script/Manage/Initializer.cs

@@ -30,7 +30,6 @@ public class Initializer : MonoBehaviour
 
         gameObject.AddComponent<ManaIAP>();
 
-        gameObject.AddScript<Bundle>();
         gameObject.AddScript<Auxiliary>();
 
         gameObject.AddScript<ManaLan>();

+ 57 - 80
Assets/Script/Manage/ManaReso.cs

@@ -16,6 +16,7 @@ using Debug = UnityEngine.Debug;
 public enum Folder
 {
     UI,
+    Atlas,
     Effect,
     Audio,
     Scene,
@@ -373,32 +374,7 @@ public class ManaReso : Regist
         }
         else
         {
-            T t;
-
-            if (folder == Folder.UI)
-            {
-                t = Bundle.UI.LoadAsset<T>(goName);
-            }
-            else if (folder == Folder.Audio)
-            {
-                t = Bundle.Audio.LoadAsset<T>(goName);
-            }
-            else if (folder == Folder.Config)
-            {
-                t = Bundle.Config.LoadAsset<T>(goName);
-            }
-            else if (folder == Folder.Effect)
-            {
-                t = Bundle.Effect.LoadAsset<T>(goName);
-            }
-            else if (folder == Folder.Scene)
-            {
-                t = Bundle.Scene.LoadAsset<T>(goName);
-            }
-            else
-            {
-                throw new Exception();
-            }
+            T t = Bundle.Load<T>(goName, folder);
 
             if (t == null)
             {
@@ -717,32 +693,32 @@ public class ManaReso : Regist
     {
         KV<AsyncRequest, UnityAction> kv = new KV<AsyncRequest, UnityAction>();
 
-        AssetBundleRequest bundleRequest;
-
-        if (folder == Folder.UI)
-        {
-            bundleRequest = Bundle.UI.LoadAssetAsync(goName);
-        }
-        else if (folder == Folder.Audio)
-        {
-            bundleRequest = Bundle.Audio.LoadAssetAsync(goName);
-        }
-        else if (folder == Folder.Config)
-        {
-            bundleRequest = Bundle.Config.LoadAssetAsync(goName);
-        }
-        else if (folder == Folder.Effect)
-        {
-            bundleRequest = Bundle.Effect.LoadAssetAsync(goName);
-        }
-        else if (folder == Folder.Scene)
-        {
-            bundleRequest = Bundle.Scene.LoadAssetAsync(goName);
-        }
-        else
-        {
-            throw new Exception();
-        }
+        AssetBundleRequest bundleRequest = Bundle.LoadAsync(goName, folder);
+
+        //if (folder == Folder.UI)
+        //{
+        //    bundleRequest = Bundle.UI.LoadAssetAsync(goName);
+        //}
+        //else if (folder == Folder.Audio)
+        //{
+        //    bundleRequest = Bundle.Audio.LoadAssetAsync(goName);
+        //}
+        //else if (folder == Folder.Config)
+        //{
+        //    bundleRequest = Bundle.Config.LoadAssetAsync(goName);
+        //}
+        //else if (folder == Folder.Effect)
+        //{
+        //    bundleRequest = Bundle.Effect.LoadAssetAsync(goName);
+        //}
+        //else if (folder == Folder.Scene)
+        //{
+        //    bundleRequest = Bundle.Scene.LoadAssetAsync(goName);
+        //}
+        //else
+        //{
+        //    throw new Exception();
+        //}
         
         AsyncRequest asyncRequest = new AsyncRequest();
         asyncRequest.Request = bundleRequest;
@@ -763,32 +739,32 @@ public class ManaReso : Regist
     {
         KV<AsyncRequest, UnityAction> kv = new KV<AsyncRequest, UnityAction>();
 
-        AssetBundleRequest bundleRequest;
-
-        if (folder == Folder.UI)
-        {
-            bundleRequest = Bundle.UI.LoadAssetAsync(goName);
-        }
-        else if (folder == Folder.Audio)
-        {
-            bundleRequest = Bundle.Audio.LoadAssetAsync(goName);
-        }
-        else if (folder == Folder.Config)
-        {
-            bundleRequest = Bundle.Config.LoadAssetAsync(goName);
-        }
-        else if (folder == Folder.Effect)
-        {
-            bundleRequest = Bundle.Effect.LoadAssetAsync(goName);
-        }
-        else if (folder == Folder.Scene)
-        {
-            bundleRequest = Bundle.Scene.LoadAssetAsync(goName);
-        }
-        else
-        {
-            throw new Exception();
-        }
+        AssetBundleRequest bundleRequest = Bundle.LoadAsync(goName, folder);
+
+        //if (folder == Folder.UI)
+        //{
+        //    bundleRequest = Bundle.UI.LoadAssetAsync(goName);
+        //}
+        //else if (folder == Folder.Audio)
+        //{
+        //    bundleRequest = Bundle.Audio.LoadAssetAsync(goName);
+        //}
+        //else if (folder == Folder.Config)
+        //{
+        //    bundleRequest = Bundle.Config.LoadAssetAsync(goName);
+        //}
+        //else if (folder == Folder.Effect)
+        //{
+        //    bundleRequest = Bundle.Effect.LoadAssetAsync(goName);
+        //}
+        //else if (folder == Folder.Scene)
+        //{
+        //    bundleRequest = Bundle.Scene.LoadAssetAsync(goName);
+        //}
+        //else
+        //{
+        //    throw new Exception();
+        //}
 
         AsyncRequest asyncRequest = new AsyncRequest();
         asyncRequest.Request = bundleRequest;
@@ -870,8 +846,9 @@ public class ManaReso : Regist
             {
                 KV<AsyncRequest, UnityAction> kv = new KV<AsyncRequest, UnityAction>();
 
-                AssetBundleRequest bundleRequest = Bundle.Scene.LoadAssetAsync("Player");
-
+                AssetBundleRequest bundleRequest = Bundle.LoadAsync("Player", Folder.Scene);
+                //Bundle.Scene.LoadAssetAsync("Player");
+                
                 AsyncRequest asyncRequest = new AsyncRequest();
                 asyncRequest.Request = bundleRequest;
                 asyncRequest.Callback = null;

+ 2 - 2
Assets/Script/Object/Skill/BigSkill.cs

@@ -183,8 +183,8 @@ public class BigSkill : Skill
         Level = int.Parse(attribute[4].Value);
         UseTimer = float.Parse(attribute[6].Value);
         CoolTimer = float.Parse(attribute[5].Value);
-
-        BarBk1.material = Bundle.Effect.LoadAsset<Material>("GrayMat");
+        
+        BarBk1.material = ManaReso.Load<Material>("GrayMat", Folder.Effect);
 
         BarStatus_ = (SkillStatus)Enum.Parse(typeof(SkillStatus), attribute[3].Value);
         ItemStatus_ = (SkillStatus)Enum.Parse(typeof(SkillStatus), attribute[2].Value);

+ 161 - 21
Assets/Script/Tool/Bundle.cs

@@ -3,44 +3,184 @@ using UnityEngine;
 using UnityEngine.Events;
 
 using System.Collections;
+using System.Collections.Generic;
 using System.Diagnostics;
+
 using Debug = UnityEngine.Debug;
+using Object = UnityEngine.Object;
 
-public class Bundle : Regist
+public class Bundle : MonoBehaviour
 {
     #region
 
-    public static bool LoadComplete;
-
     public static Bundle Instance;
 
-    public static AssetBundle UI;
+    public static bool LoadComplete;
+
     public static AssetBundle Atlas;
-    public static AssetBundle Effect;
-    public static AssetBundle Audio;
-    public static AssetBundle Scene;
-    public static AssetBundle Config;
+
+    private static AssetBundle UI;
+    private static AssetBundle Effect;
+    private static AssetBundle Audio;
+    private static AssetBundle Scene;
+    private static AssetBundle Config;
+
+    public bool DebugMode;
+
+    public List<Object> UiList;
+    public List<Object> AtlasList;
+    public List<Object> EffectList;
+    public List<Object> AudioList;
+    public List<Object> SceneList;
+    public List<Object> ConfigList;
 
     #endregion
 
-    public override void RegistImmed()
+    public void Awake()
+    {
+        Instance = this;
+
+        LoadAll
+        (
+            () => LoadComplete = true
+        );
+    }
+
+
+    public static T Load<T>(string goName, Folder folder) where T : Object
     {
-        if (RegistFlag)
+        if (Instance.DebugMode)
         {
-            return;
+            #region MyRegion
+
+            if (folder == Folder.UI)
+            {
+                for (int i = 0; i < Instance.UiList.Count; i++)
+                {
+                    if (Instance.UiList[i].name == goName)
+                    {
+                        return (T) Instance.UiList[i];
+                    }
+                }
+            }
+            else if (folder == Folder.Audio)
+            {
+                for (int i = 0; i < Instance.AudioList.Count; i++)
+                {
+                    if (Instance.AudioList[i].name == goName)
+                    {
+                        return (T) Instance.AudioList[i];
+                    }
+                }
+            }
+            else if (folder == Folder.Config)
+            {
+                for (int i = 0; i < Instance.ConfigList.Count; i++)
+                {
+                    if (Instance.ConfigList[i].name == goName)
+                    {
+                        return (T) Instance.ConfigList[i];
+                    }
+                }
+            }
+            else if (folder == Folder.Effect)
+            {
+                for (int i = 0; i < Instance.EffectList.Count; i++)
+                {
+                    if (Instance.EffectList[i].name == goName)
+                    {
+                        return (T) Instance.EffectList[i];
+                    }
+                }
+            }
+            else if (folder == Folder.Scene)
+            {
+                for (int i = 0; i < Instance.SceneList.Count; i++)
+                {
+                    if (Instance.SceneList[i].name == goName)
+                    {
+                        return (T) Instance.SceneList[i];
+                    }
+                }
+            }
+            else if (folder == Folder.Atlas)
+            {
+                for (int i = 0; i < Instance.AtlasList.Count; i++)
+                {
+                    if (Instance.AtlasList[i].name == goName)
+                    {
+                        return (T) Instance.AtlasList[i];
+                    }
+                }
+            }
+
+            #endregion
         }
         else
         {
-            RegistFlag = true;
+            #region MyRegion
+
+            if (folder == Folder.UI)
+            {
+                return UI.LoadAsset<T>(goName);
+            }
+            else if (folder == Folder.Audio)
+            {
+                return Audio.LoadAsset<T>(goName);
+            }
+            else if (folder == Folder.Config)
+            {
+                return Config.LoadAsset<T>(goName);
+            }
+            else if (folder == Folder.Effect)
+            {
+                return Effect.LoadAsset<T>(goName);
+            }
+            else if (folder == Folder.Scene)
+            {
+                return Scene.LoadAsset<T>(goName);
+            }
+            else if (folder == Folder.Atlas)
+            {
+                return Atlas.LoadAsset<T>(goName);
+            }
+
+            #endregion
         }
 
-        enabled = true;
-        Instance = this;
+        throw new Exception();
+    }
 
-        LoadAll
-        (
-            () => LoadComplete = true
-        );
+    public static AssetBundleRequest LoadAsync(string goName, Folder folder)
+    {
+        if (folder == Folder.UI)
+        {
+            return UI.LoadAssetAsync(goName);
+        }
+        else if (folder == Folder.Audio)
+        {
+            return Audio.LoadAssetAsync(goName);
+        }
+        else if (folder == Folder.Config)
+        {
+            return Config.LoadAssetAsync(goName);
+        }
+        else if (folder == Folder.Effect)
+        {
+            return Effect.LoadAssetAsync(goName);
+        }
+        else if (folder == Folder.Scene)
+        {
+            return Scene.LoadAssetAsync(goName);
+        }
+        else if (folder == Folder.Atlas)
+        {
+            return Atlas.LoadAssetAsync(goName);
+        }
+        else
+        {
+            throw new Exception();
+        }
     }
 
 
@@ -77,7 +217,7 @@ public class Bundle : Regist
 
         yield return LoadUI();
 
-        if (!Logo.LogoComplete)
+        if (!Logo.LogoComplete && !Instance.DebugMode)
         {
             ManaReso.AddAsyncLoad("Canvas",1,Folder.UI,ObjType.Canvas);
 
@@ -97,7 +237,7 @@ public class Bundle : Regist
 
         yield return LoadScene();
 
-        if (!Logo.LogoComplete)
+        if (!Logo.LogoComplete && !Instance.DebugMode)
         {
             //if (Data.GetPlayerBool("TutorialA") && Data.GetPlayerInt("TutorialIndexA") == 1)
             //{
@@ -118,7 +258,7 @@ public class Bundle : Regist
 
         yield return LoadAudio();
 
-        if (!Logo.LogoComplete)
+        if (!Logo.LogoComplete && !Instance.DebugMode)
         {
             ManaReso.AddAsyncLoad("Music", 1, Folder.Audio, ObjType.Music);
 

+ 1 - 1
Assets/Script/Tool/DashGame/Language.cs

@@ -72,7 +72,7 @@ public class Language
     {
         ManaLan.CurrentLan = lan;
 
-        TextAsset textAsset = Bundle.Config.LoadAsset<TextAsset>(lan.ToString());
+        TextAsset textAsset = ManaReso.Load<TextAsset>(lan.ToString(), Folder.Config);
 
         xml = new XmlDocument();
         xml.LoadXml(textAsset.text);

+ 3 - 3
Assets/Script/Tool/Data.cs

@@ -56,8 +56,8 @@ public class Data
                     tempDoc1.LoadXml(sr.ReadToEnd());
 
                     sr.Close();
-
-                    TextAsset textAsset = Bundle.Config.LoadAsset<TextAsset>("PlayerConfig");
+                    
+                    TextAsset textAsset = ManaReso.Load<TextAsset>("PlayerConfig", Folder.Config);
 
                     tempDoc2 = new XmlDocument();
                     tempDoc2.LoadXml(textAsset.text);
@@ -98,7 +98,7 @@ public class Data
                 }
                 else
                 {
-                    TextAsset textAsset = Bundle.Config.LoadAsset<TextAsset>("PlayerConfig");
+                    TextAsset textAsset = ManaReso.Load<TextAsset>("PlayerConfig", Folder.Config);
 
                     tempDoc2 = new XmlDocument();
                     tempDoc2.LoadXml(textAsset.text);

+ 1 - 1
Assets/Script/Tool/UI/ImagePlus.cs

@@ -40,7 +40,7 @@ public class ImagePlus : Image
             {
                 if (sprite == null)
                 {
-                    sprite = Bundle.Atlas.LoadAsset<Sprite>("Atlas");
+                    sprite = ManaReso.Load<Sprite>("Atlas", Folder.Atlas);
                 }
             }
         }

+ 0 - 3
MyLovelyGarden.Editor.csproj

@@ -55,9 +55,6 @@
     <Reference Include="UnityEditor">
       <HintPath>Library\UnityAssemblies\UnityEditor.dll</HintPath>
     </Reference>
-    <Reference Include="UnityEngine.Advertisements">
-      <HintPath>Library\UnityAssemblies\UnityEngine.Advertisements.dll</HintPath>
-    </Reference>
     <Reference Include="UnityEditor.Advertisements">
       <HintPath>Library\UnityAssemblies\UnityEditor.Advertisements.dll</HintPath>
     </Reference>

+ 0 - 3
MyLovelyGarden.csproj

@@ -52,9 +52,6 @@
     <Reference Include="UnityEngine">
       <HintPath>Library\UnityAssemblies\UnityEngine.dll</HintPath>
     </Reference>
-    <Reference Include="UnityEngine.Advertisements">
-      <HintPath>Library\UnityAssemblies\UnityEngine.Advertisements.dll</HintPath>
-    </Reference>
     <Reference Include="UnityEngine.UI">
       <HintPath>Library\UnityAssemblies\UnityEngine.UI.dll</HintPath>
     </Reference>