From 19997f58e0df812218eb50074acdba8b6ad6fe49 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期五, 26 十月 2018 20:33:52 +0800
Subject: [PATCH] 4340 【前端】支持xlua方便IOS提审
---
Core/ResModule/UILoader.cs | 435 +++++++++++++++++++++++++++---------------------------
1 files changed, 218 insertions(+), 217 deletions(-)
diff --git a/Core/ResModule/UILoader.cs b/Core/ResModule/UILoader.cs
index b006394..94e91a3 100644
--- a/Core/ResModule/UILoader.cs
+++ b/Core/ResModule/UILoader.cs
@@ -1,217 +1,218 @@
-锘縰sing System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using System;
-using TableConfig;
-using System.IO;
-
-public class UILoader
-{
- readonly static string PREFAB_EXTERSION = ".prefab";
- readonly static string SPRITE_EXTERSION = ".png";
-
- public static GameObject LoadWindow(string _name)
- {
- GameObject window = null;
- if (AssetSource.uiFromEditor)
- {
-#if UNITY_EDITOR
- var isPriority = PriorityWindowConfig.Get().priorityWindows.Contains(_name);
-
- var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
- isPriority ? ResourcesPath.UI_PRIORITYWINDOW_SUFFIX : ResourcesPath.UI_WINDOW_SUFFIX, "/",
- _name,
- PREFAB_EXTERSION);
-
- window = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
-#endif
- }
- else
- {
- var isPriority = PriorityWindowConfig.Get().priorityWindows.Contains(_name);
- var bundleName = isPriority ? ResourcesPath.UI_PRIORITYWINDOW_SUFFIX.ToLower() : ResourcesPath.UI_WINDOW_SUFFIX.ToLower();
- var assetInfo = new AssetInfo(bundleName, _name);
-
- window = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as GameObject;
- }
-
- if (window == null)
- {
- DesignDebug.LogErrorFormat("UILoader.LoadWindow() => 鍔犺浇涓嶅埌璧勬簮: {0}.", _name);
- }
-
- return window;
- }
-
- public static void LoadWindowAsync(string _name, Action<bool, UnityEngine.Object> _callBack)
- {
- GameObject window = null;
- if (AssetSource.uiFromEditor)
- {
-#if UNITY_EDITOR
- var isPriority = PriorityWindowConfig.Get().priorityWindows.Contains(_name);
- var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
- isPriority ? ResourcesPath.UI_PRIORITYWINDOW_SUFFIX : ResourcesPath.UI_WINDOW_SUFFIX, "/",
- _name,
- PREFAB_EXTERSION);
-
- window = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
- if (_callBack != null)
- {
- _callBack(window != null, window);
- }
-#endif
- }
- else
- {
- var isPriority = PriorityWindowConfig.Get().priorityWindows.Contains(_name);
- var bundleName = isPriority ? ResourcesPath.UI_PRIORITYWINDOW_SUFFIX.ToLower() : ResourcesPath.UI_WINDOW_SUFFIX.ToLower();
- var assetInfo = new AssetInfo(bundleName, _name);
-
- AssetBundleUtility.Instance.Co_LoadAsset(assetInfo, _callBack);
- }
- }
-
- public static void UnLoadWindowAsset(string _assetName)
- {
- if (!AssetSource.uiFromEditor)
- {
- var isPriority = PriorityWindowConfig.Get().priorityWindows.Contains(_assetName);
- var bundleName = isPriority ? ResourcesPath.UI_PRIORITYWINDOW_SUFFIX.ToLower() : ResourcesPath.UI_WINDOW_SUFFIX.ToLower();
-
- AssetBundleUtility.Instance.UnloadAsset(bundleName, _assetName);
- }
- }
-
- public static GameObject LoadPrefab(string _name)
- {
- GameObject prefab = null;
- if (AssetSource.uiFromEditor)
- {
-#if UNITY_EDITOR
- var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
- ResourcesPath.UI_PREFAB_SUFFIX, "/",
- _name,
- PREFAB_EXTERSION);
-
- prefab = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
-#endif
- }
- else
- {
- var bundleName = ResourcesPath.UI_PREFAB_SUFFIX.ToLower();
- var assetInfo = new AssetInfo(bundleName, _name);
-
- prefab = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as GameObject;
- }
-
- if (prefab == null)
- {
- DesignDebug.LogErrorFormat("UILoader.LoadPrefab() => 鍔犺浇涓嶅埌璧勬簮: {0}.", _name);
- }
-
- return prefab;
- }
-
- public static void UnLoadPrefab(string _assetName)
- {
- if (!AssetSource.uiFromEditor)
- {
- AssetBundleUtility.Instance.UnloadAsset("ui/prefab", _assetName);
- }
- }
-
- public static Sprite LoadSprite(string _iconKey)
- {
- var iconConfig = ConfigManager.Instance.GetTemplate<IconConfig>(_iconKey);
- if (iconConfig == null)
- {
- return null;
- }
-
- return LoadSprite(iconConfig.folder, iconConfig.sprite);
- }
-
- public static Sprite LoadSprite(string _folder, string _file)
- {
- var folder = _folder;
- var file = _file;
-
- Sprite sprite = null;
- if (AssetSource.uiFromEditor)
- {
-#if UNITY_EDITOR
- var relativePath = StringUtility.Contact(folder, "/", file);
- var rootPath = ResourcesPath.UI_SPRITE_SUFFIX;
- var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
- rootPath, "/",
- relativePath,
- SPRITE_EXTERSION);
-
- sprite = UnityEditor.AssetDatabase.LoadAssetAtPath<Sprite>(path);
-#endif
- }
- else
- {
- var bundleName = StringUtility.Contact("ui/sprite/", folder.ToLower());
- var assetInfo = new AssetInfo(bundleName, file);
-
- sprite = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo, typeof(Sprite)) as Sprite;
- }
-
- if (sprite == null)
- {
- DesignDebug.LogErrorFormat("UILoader.LoadSprite() => 鍔犺浇涓嶅埌璧勬簮: {0}.", file);
- }
-
- return sprite;
- }
-
- public static void UnLoadSprite(string _iconKey)
- {
- if (!AssetSource.uiFromEditor)
- {
- var iconConfig = ConfigManager.Instance.GetTemplate<IconConfig>(_iconKey);
- if (iconConfig != null)
- {
- var bundleName = StringUtility.Contact("ui/sprite/", iconConfig.folder.ToLower());
- AssetBundleUtility.Instance.UnloadAsset(bundleName, iconConfig.sprite);
- }
- }
-
- }
-
- public static Font LoadFont(string _fontName)
- {
- Font font = null;
- if (AssetSource.uiFromEditor)
- {
-#if UNITY_EDITOR
- var rootPath = ResourcesPath.UI_FONT_SUFFIX;
- var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, rootPath, "/", _fontName, ".ttf");
- font = UnityEditor.AssetDatabase.LoadAssetAtPath<Font>(path);
-#endif
- }
- else
- {
- var assetInfo = new AssetInfo("ui/font", _fontName);
- font = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo, typeof(Font)) as Font;
- }
-
- if (font == null)
- {
- DesignDebug.LogErrorFormat("UILoader.LoadFont() => 鍔犺浇涓嶅埌璧勬簮: {0}.", _fontName);
- }
-
- return font;
- }
-
- public static void UnLoadFont(string _fontName)
- {
- if (!AssetSource.uiFromEditor)
- {
- AssetBundleUtility.Instance.UnloadAsset("ui/font", _fontName);
- }
- }
-
-}
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using System;
+using TableConfig;
+using System.IO;
+
+[XLua.LuaCallCSharp]
+public class UILoader
+{
+ readonly static string PREFAB_EXTERSION = ".prefab";
+ readonly static string SPRITE_EXTERSION = ".png";
+
+ public static GameObject LoadWindow(string _name)
+ {
+ GameObject window = null;
+ if (AssetSource.uiFromEditor)
+ {
+#if UNITY_EDITOR
+ var isPriority = PriorityWindowConfig.Get().priorityWindows.Contains(_name);
+
+ var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
+ isPriority ? ResourcesPath.UI_PRIORITYWINDOW_SUFFIX : ResourcesPath.UI_WINDOW_SUFFIX, "/",
+ _name,
+ PREFAB_EXTERSION);
+
+ window = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
+#endif
+ }
+ else
+ {
+ var isPriority = PriorityWindowConfig.Get().priorityWindows.Contains(_name);
+ var bundleName = isPriority ? ResourcesPath.UI_PRIORITYWINDOW_SUFFIX.ToLower() : ResourcesPath.UI_WINDOW_SUFFIX.ToLower();
+ var assetInfo = new AssetInfo(bundleName, _name);
+
+ window = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as GameObject;
+ }
+
+ if (window == null)
+ {
+ DebugEx.LogErrorFormat("UILoader.LoadWindow() => 鍔犺浇涓嶅埌璧勬簮: {0}.", _name);
+ }
+
+ return window;
+ }
+
+ public static void LoadWindowAsync(string _name, Action<bool, UnityEngine.Object> _callBack)
+ {
+ GameObject window = null;
+ if (AssetSource.uiFromEditor)
+ {
+#if UNITY_EDITOR
+ var isPriority = PriorityWindowConfig.Get().priorityWindows.Contains(_name);
+ var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
+ isPriority ? ResourcesPath.UI_PRIORITYWINDOW_SUFFIX : ResourcesPath.UI_WINDOW_SUFFIX, "/",
+ _name,
+ PREFAB_EXTERSION);
+
+ window = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
+ if (_callBack != null)
+ {
+ _callBack(window != null, window);
+ }
+#endif
+ }
+ else
+ {
+ var isPriority = PriorityWindowConfig.Get().priorityWindows.Contains(_name);
+ var bundleName = isPriority ? ResourcesPath.UI_PRIORITYWINDOW_SUFFIX.ToLower() : ResourcesPath.UI_WINDOW_SUFFIX.ToLower();
+ var assetInfo = new AssetInfo(bundleName, _name);
+
+ AssetBundleUtility.Instance.Co_LoadAsset(assetInfo, _callBack);
+ }
+ }
+
+ public static void UnLoadWindowAsset(string _assetName)
+ {
+ if (!AssetSource.uiFromEditor)
+ {
+ var isPriority = PriorityWindowConfig.Get().priorityWindows.Contains(_assetName);
+ var bundleName = isPriority ? ResourcesPath.UI_PRIORITYWINDOW_SUFFIX.ToLower() : ResourcesPath.UI_WINDOW_SUFFIX.ToLower();
+
+ AssetBundleUtility.Instance.UnloadAsset(bundleName, _assetName);
+ }
+ }
+
+ public static GameObject LoadPrefab(string _name)
+ {
+ GameObject prefab = null;
+ if (AssetSource.uiFromEditor)
+ {
+#if UNITY_EDITOR
+ var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
+ ResourcesPath.UI_PREFAB_SUFFIX, "/",
+ _name,
+ PREFAB_EXTERSION);
+
+ prefab = UnityEditor.AssetDatabase.LoadAssetAtPath<GameObject>(path);
+#endif
+ }
+ else
+ {
+ var bundleName = ResourcesPath.UI_PREFAB_SUFFIX.ToLower();
+ var assetInfo = new AssetInfo(bundleName, _name);
+
+ prefab = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as GameObject;
+ }
+
+ if (prefab == null)
+ {
+ DebugEx.LogErrorFormat("UILoader.LoadPrefab() => 鍔犺浇涓嶅埌璧勬簮: {0}.", _name);
+ }
+
+ return prefab;
+ }
+
+ public static void UnLoadPrefab(string _assetName)
+ {
+ if (!AssetSource.uiFromEditor)
+ {
+ AssetBundleUtility.Instance.UnloadAsset("ui/prefab", _assetName);
+ }
+ }
+
+ public static Sprite LoadSprite(string _iconKey)
+ {
+ var iconConfig = Config.Instance.Get<IconConfig>(_iconKey);
+ if (iconConfig == null)
+ {
+ return null;
+ }
+
+ return LoadSprite(iconConfig.folder, iconConfig.sprite);
+ }
+
+ public static Sprite LoadSprite(string _folder, string _file)
+ {
+ var folder = _folder;
+ var file = _file;
+
+ Sprite sprite = null;
+ if (AssetSource.uiFromEditor)
+ {
+#if UNITY_EDITOR
+ var relativePath = StringUtility.Contact(folder, "/", file);
+ var rootPath = ResourcesPath.UI_SPRITE_SUFFIX;
+ var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
+ rootPath, "/",
+ relativePath,
+ SPRITE_EXTERSION);
+
+ sprite = UnityEditor.AssetDatabase.LoadAssetAtPath<Sprite>(path);
+#endif
+ }
+ else
+ {
+ var bundleName = StringUtility.Contact("ui/sprite/", folder.ToLower());
+ var assetInfo = new AssetInfo(bundleName, file);
+
+ sprite = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo, typeof(Sprite)) as Sprite;
+ }
+
+ if (sprite == null)
+ {
+ DebugEx.LogErrorFormat("UILoader.LoadSprite() => 鍔犺浇涓嶅埌璧勬簮: {0}.", file);
+ }
+
+ return sprite;
+ }
+
+ public static void UnLoadSprite(string _iconKey)
+ {
+ if (!AssetSource.uiFromEditor)
+ {
+ var iconConfig = Config.Instance.Get<IconConfig>(_iconKey);
+ if (iconConfig != null)
+ {
+ var bundleName = StringUtility.Contact("ui/sprite/", iconConfig.folder.ToLower());
+ AssetBundleUtility.Instance.UnloadAsset(bundleName, iconConfig.sprite);
+ }
+ }
+
+ }
+
+ public static Font LoadFont(string _fontName)
+ {
+ Font font = null;
+ if (AssetSource.uiFromEditor)
+ {
+#if UNITY_EDITOR
+ var rootPath = ResourcesPath.UI_FONT_SUFFIX;
+ var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, rootPath, "/", _fontName, ".ttf");
+ font = UnityEditor.AssetDatabase.LoadAssetAtPath<Font>(path);
+#endif
+ }
+ else
+ {
+ var assetInfo = new AssetInfo("ui/font", _fontName);
+ font = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo, typeof(Font)) as Font;
+ }
+
+ if (font == null)
+ {
+ DebugEx.LogErrorFormat("UILoader.LoadFont() => 鍔犺浇涓嶅埌璧勬簮: {0}.", _fontName);
+ }
+
+ return font;
+ }
+
+ public static void UnLoadFont(string _fontName)
+ {
+ if (!AssetSource.uiFromEditor)
+ {
+ AssetBundleUtility.Instance.UnloadAsset("ui/font", _fontName);
+ }
+ }
+
+}
--
Gitblit v1.8.0