From 095955d3a575bc943c67f3b41996fd15481336be Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期三, 17 九月 2025 12:33:57 +0800
Subject: [PATCH] 0312 立绘调整路径 不用图集加载,改单图
---
Main/Utility/ComponentExtersion.cs | 12 ++++++
Main/System/Hero/UIHeroController.cs | 72 ++++++++++++++++++++++++-----------
Main/ResModule/ResManager.cs | 19 +++++----
Main/ResModule/UILoader.cs | 7 +++
4 files changed, 78 insertions(+), 32 deletions(-)
diff --git a/Main/ResModule/ResManager.cs b/Main/ResModule/ResManager.cs
index 56bbfb3..a6a580a 100644
--- a/Main/ResModule/ResManager.cs
+++ b/Main/ResModule/ResManager.cs
@@ -5,6 +5,9 @@
using System.IO;
using UnityEngine.Video;
using Spine.Unity;
+using UnityEngine.UI;
+
+
@@ -123,7 +126,7 @@
}
#endif
- public T LoadAsset<T> (string directory, string name) where T : UnityEngine.Object
+ public T LoadAsset<T> (string directory, string name, bool needExt = true) where T : UnityEngine.Object
{
T asset = null;
// 鐗规畩澶勭悊 鍥犱负鏈変竴灞傚浘闆嗙殑鍏崇郴 directory瑕佷紶鍏ョ殑搴旇鏄痑tlas鐨勫悕瀛�
@@ -143,14 +146,14 @@
directory = directory.Replace("\\", "/");
}
- return LoadAssetInternal<T>(directory, name);
+ return LoadAssetInternal<T>(directory, name, needExt);
}
- private T LoadAssetInternal<T>(string directory, string name) where T : UnityEngine.Object
+ private T LoadAssetInternal<T>(string directory, string name, bool needExt = true) where T : UnityEngine.Object
{
T asset = null;
+ var path = ($"Assets/ResourcesOut/{directory}/{name}" + (needExt ? GetExtension(typeof(T)) : "")).Replace("//", "/").Trim().Replace("\\", "/");
- var path = ($"Assets/ResourcesOut/{directory}/{name}" + GetExtension(typeof(T))).Replace("//", "/").Trim().Replace("\\", "/");
if (!AssetSource.isUseAssetBundle)
{
#if UNITY_EDITOR
@@ -214,7 +217,7 @@
return LoadAssetInternal<Sprite>(atlasName, spriteName);
}
- public void LoadAssetAsync<T>(string directory, string name, Action<bool, UnityEngine.Object> callBack) where T : UnityEngine.Object
+ public void LoadAssetAsync<T>(string directory, string name, Action<bool, UnityEngine.Object> callBack, bool needExt = true) where T : UnityEngine.Object
{
// 鐗规畩澶勭悊 鍥犱负鏈変竴灞傚浘闆嗙殑鍏崇郴 directory瑕佷紶鍏ョ殑搴旇鏄痑tlas鐨勫悕瀛�
if (typeof(T) == typeof(Sprite))
@@ -223,7 +226,7 @@
return;
}
- LoadAssetAsyncInternal<T>(directory, name, callBack);
+ LoadAssetAsyncInternal<T>(directory, name, callBack, needExt);
}
private void LoadSpriteAsync<T>(string atlasName, string spriteName, Action<bool, UnityEngine.Object> callBack) where T : UnityEngine.Object
@@ -246,9 +249,9 @@
#endif
}
- private void LoadAssetAsyncInternal<T>(string directory, string name, Action<bool, UnityEngine.Object> callBack) where T : UnityEngine.Object
+ private void LoadAssetAsyncInternal<T>(string directory, string name, Action<bool, UnityEngine.Object> callBack, bool needExt = true) where T : UnityEngine.Object
{
- var path = string.Concat($"Assets/ResourcesOut/{directory}/{name}", GetExtension(typeof(T))).Replace("//", "/");
+ var path = string.Concat($"Assets/ResourcesOut/{directory}/{name}", (needExt ? GetExtension(typeof(T)) : "")).Replace("//", "/");
if (!AssetSource.isUseAssetBundle)
{
diff --git a/Main/ResModule/UILoader.cs b/Main/ResModule/UILoader.cs
index 392f0d4..7e8e0d7 100644
--- a/Main/ResModule/UILoader.cs
+++ b/Main/ResModule/UILoader.cs
@@ -60,7 +60,7 @@
{
ResManager.Instance.UnloadAsset(ResourcesPath.UI_FONT_SUFFIX, _fontName);
}
-
+
public static Texture2D LoadTexture2D(string _iconKey)
{
var iconConfig = IconConfig.Get(_iconKey);
@@ -70,4 +70,9 @@
}
return ResManager.Instance.LoadAsset<Texture2D>(StringUtility.Contact(ResourcesPath.UI_TEXTURE_SUFFIX, "/" + iconConfig.folder), iconConfig.sprite);
}
+
+ public static Texture2D LoadTexture2DPNG(string name)
+ {
+ return ResManager.Instance.LoadAsset<Texture2D>(StringUtility.Contact(ResourcesPath.UI_TEXTURE_SUFFIX, "/FullScreenBg"), name + ".png", false);
+ }
}
diff --git a/Main/System/Hero/UIHeroController.cs b/Main/System/Hero/UIHeroController.cs
index fb01aa1..852fcef 100644
--- a/Main/System/Hero/UIHeroController.cs
+++ b/Main/System/Hero/UIHeroController.cs
@@ -2,6 +2,7 @@
using System;
using Spine.Unity;
using UnityEngine;
+using UnityEngine.UI;
public class UIHeroController : MonoBehaviour
{
@@ -22,6 +23,52 @@
}
skinID = _skinID;
+ var skinConfig = HeroSkinConfig.Get(skinID);
+ if (isLh)
+ {
+
+ //X杞村亸绉伙紝Y杞村亸绉伙紝缂╂斁锛屾槸鍚︽按骞崇炕杞紙0鍚�1鏄級
+ if (skinConfig.TachieParam.Length == 4)
+ {
+ this.transform.localPosition = new Vector3(skinConfig.TachieParam[0], skinConfig.TachieParam[1], 0);
+ this.transform.localScale = Vector3.one * skinConfig.TachieParam[2];
+ this.transform.localRotation = Quaternion.Euler(0, skinConfig.TachieParam[3] == 0 ? 0 : 180, 0);
+ }
+ else
+ {
+ this.transform.localPosition = Vector3.zero;
+ this.transform.localScale = Vector3.one;
+ this.transform.localRotation = Quaternion.identity;
+ }
+
+ //绔嬬粯鐗规畩澶勭悊锛屾病鏈塻pine鍔ㄧ敾鐨勬敼鐢ㄥ浘鐗�
+ var lhImg = this.AddMissingComponent<RawImage>();
+ if (!skinConfig.Tachie.Contains("SkeletonData"))
+ {
+ //鍥剧墖鏇挎崲
+ lhImg.SetTexture2DPNG(skinConfig.Tachie);
+ lhImg.SetNativeSize();
+ if (skeletonGraphic != null)
+ {
+ skeletonGraphic.enabled = false;
+ }
+ lhImg.enabled = true;
+ return;
+ }
+ else
+ {
+ if (skeletonGraphic != null)
+ {
+ skeletonGraphic.enabled = true;
+ }
+ lhImg.enabled = false;
+ }
+ }
+ else
+ {
+ this.transform.localScale = Vector3.one * scale;
+ }
+
onComplete = _onComplete;
pool = GameObjectPoolManager.Instance.RequestPool(UILoader.LoadPrefab("UIHero"));
@@ -42,13 +89,12 @@
}
skeletonGraphic = instanceGO.GetComponentInChildren<SkeletonGraphic>(true);
- var skinConfig = HeroSkinConfig.Get(skinID);
if (isLh)
{
skeletonGraphic.skeletonDataAsset = ResManager.Instance.LoadAsset<SkeletonDataAsset>("Hero/SpineRes/", skinConfig.Tachie);
}
else
- {
+ {
skeletonGraphic.skeletonDataAsset = ResManager.Instance.LoadAsset<SkeletonDataAsset>("Hero/SpineRes/", skinConfig.SpineRes);
}
if (skeletonGraphic.skeletonDataAsset == null)
@@ -63,27 +109,7 @@
return;
}
skeletonGraphic.Initialize(true);
- if (isLh)
- {
- //X杞村亸绉伙紝Y杞村亸绉伙紝缂╂斁锛屾槸鍚︽按骞崇炕杞紙0鍚�1鏄級
- if (skinConfig.TachieParam.Length == 4)
- {
- this.transform.localPosition = new Vector3(skinConfig.TachieParam[0], skinConfig.TachieParam[1], 0);
- this.transform.localScale = Vector3.one * skinConfig.TachieParam[2];
- this.transform.localRotation = Quaternion.Euler(0, skinConfig.TachieParam[3] == 0 ? 0 : 180, 0);
- }
- else
- {
- this.transform.localPosition = Vector3.zero;
- this.transform.localScale = Vector3.one;
- this.transform.localRotation = Quaternion.identity;
- }
-
- }
- else
- {
- this.transform.localScale = Vector3.one * scale;
- }
+
spineAnimationState = skeletonGraphic.AnimationState;
spineAnimationState.Data.DefaultMix = 0f;
if (motionName == "")
diff --git a/Main/Utility/ComponentExtersion.cs b/Main/Utility/ComponentExtersion.cs
index e40a071..34ee978 100644
--- a/Main/Utility/ComponentExtersion.cs
+++ b/Main/Utility/ComponentExtersion.cs
@@ -378,4 +378,16 @@
var texture = UILoader.LoadTexture2D(_id);
_image.texture = texture;
}
+
+
+ public static void SetTexture2DPNG(this RawImage _image, string _id)
+ {
+ if (_image == null)
+ {
+ return;
+ }
+
+ var texture = UILoader.LoadTexture2DPNG(_id);
+ _image.texture = texture;
+ }
}
--
Gitblit v1.8.0