From da12a82814ec034922881e16090fa1d7304191c3 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期四, 17 七月 2025 22:59:37 +0800 Subject: [PATCH] 0312 新shader文字描边 和 图片流光shader; 武将部分代码 --- Main/System/Tip/ScrollTip.cs | 2 Main/System/Hero/UIHeroController.cs | 5 Main/System/Battle/BattleHUDWin.cs | 2 Main/System/HeroUI/HeroCardCell.cs | 52 ++++++ Main/Component/UI/Core/OutlineColor.cs | 2 Main/System/Redpoint/MainRedDot.cs | 22 +- Main/Component/UI/Core/OutlineEx.cs | 230 ++++++++++++++++++++++++++++++++ Main/ResModule/UILoader.cs | 14 +- Main/System/Hero/HeroInfo.cs | 9 + Main/Utility/UIUtility.cs | 2 Main/Component/UI/Core/OutlineEx.cs.meta | 11 + Main/System/Hero/HeroManager.cs | 3 Main/System/HeroUI/HeroCardLineCell.cs | 2 Main/Config/Configs/HeroConfig.cs | 38 +++-- Main/System/HeroUI/HeroListWin.cs | 7 15 files changed, 351 insertions(+), 50 deletions(-) diff --git a/Main/Component/UI/Core/OutlineColor.cs b/Main/Component/UI/Core/OutlineColor.cs index c224c8f..0df0315 100644 --- a/Main/Component/UI/Core/OutlineColor.cs +++ b/Main/Component/UI/Core/OutlineColor.cs @@ -4,7 +4,7 @@ public class OutlineColor : Outline { - + [Header("鎵╁睍Outline澧炲姞棰滆壊閫夋嫨")] [SerializeField][HideInInspector] QualityTextColType m_ColorType = QualityTextColType.None; public QualityTextColType colorType diff --git a/Main/Component/UI/Core/OutlineEx.cs b/Main/Component/UI/Core/OutlineEx.cs new file mode 100644 index 0000000..774d7bd --- /dev/null +++ b/Main/Component/UI/Core/OutlineEx.cs @@ -0,0 +1,230 @@ +using UnityEngine; +using UnityEngine.UI; +using System.Collections.Generic; + + +/// <summary> +/// UGUI鎻忚竟 +/// </summary> +public class OutlineEx : BaseMeshEffect +{ + [Header("鏂皊hader鎻忚竟")] + public Color OutlineColor = Color.white; + + QualityTextColType m_ColorType = QualityTextColType.None; + public QualityTextColType colorType + { + get { return m_ColorType; } + set + { + if (m_ColorType != value) + { + m_ColorType = value; + OutlineColor = UIHelper.GetUIOutlineColor(value); + this._Refresh(); + } + } + } + + + [Range(0, 15)] + public int OutlineWidth = 0; + + private static List<UIVertex> m_VetexList = new List<UIVertex>(); + // 鏉愯川姹狅細Key涓�"棰滆壊_瀹藉害"鏍煎紡鐨勫瓧绗︿覆锛孷alue涓哄搴旂殑鏉愯川; 鍑忓皯鍚堟壒闂锛屽張鑳戒繚鎸佷笉鍚岀殑鎻忚竟锛涘叡鐢ㄦ潗璐ㄤ細鍚屾椂鏀瑰彉鍙傛暟 + private static Dictionary<string, Material> m_MaterialPool = new Dictionary<string, Material>(); + private static Shader m_Shader; + + protected override void Start() + { + base.Start(); + if (m_Shader == null) + { + m_Shader = Shader.Find("TSF Shaders/UI/OutlineEx"); + } + + // 浣跨敤鏉愯川姹犺幏鍙栨垨鍒涘缓鏉愯川 + string key = GetMaterialKey(OutlineColor, OutlineWidth); + if (!m_MaterialPool.TryGetValue(key, out Material material)) + { + material = new Material(m_Shader); + material.SetColor("_OutlineColor", this.OutlineColor); + material.SetInt("_OutlineWidth", this.OutlineWidth); + m_MaterialPool[key] = material; + } + base.graphic.material = material; + + var v1 = base.graphic.canvas.additionalShaderChannels; + var v2 = AdditionalCanvasShaderChannels.TexCoord1; + if ((v1 & v2) != v2) + { + base.graphic.canvas.additionalShaderChannels |= v2; + } + v2 = AdditionalCanvasShaderChannels.TexCoord2; + if ((v1 & v2) != v2) + { + base.graphic.canvas.additionalShaderChannels |= v2; + } + + this._Refresh(); + } + + +#if UNITY_EDITOR + protected override void OnValidate() + { + base.OnValidate(); + + if (base.graphic.material != null) + { + this._Refresh(); + } + } +#endif + + + private void _Refresh() + { + // 妫�鏌ュ綋鍓嶆潗璐ㄦ槸鍚︿笌鎵�闇�灞炴�у尮閰嶏紝濡傛灉涓嶅尮閰嶅垯浠庢睜涓幏鍙栨垨鍒涘缓鏂版潗璐� + string key = GetMaterialKey(OutlineColor, OutlineWidth); + Material material; + if (!m_MaterialPool.TryGetValue(key, out material)) + { + // 濡傛灉姹犱腑娌℃湁瀵瑰簲鐨勬潗璐紝鍒涘缓鏂版潗璐� + var shader = Shader.Find("TSF Shaders/UI/OutlineEx"); + material = new Material(shader); + m_MaterialPool[key] = material; + } + + material.SetColor("_OutlineColor", this.OutlineColor); + material.SetInt("_OutlineWidth", this.OutlineWidth); + + // 鏇存柊鍥惧舰鏉愯川 + base.graphic.material = material; + base.graphic.SetVerticesDirty(); + } + + + public override void ModifyMesh(VertexHelper vh) + { + vh.GetUIVertexStream(m_VetexList); + + this._ProcessVertices(); + + vh.Clear(); + vh.AddUIVertexTriangleStream(m_VetexList); + } + + + private void _ProcessVertices() + { + for (int i = 0, count = m_VetexList.Count - 3; i <= count; i += 3) + { + var v1 = m_VetexList[i]; + var v2 = m_VetexList[i + 1]; + var v3 = m_VetexList[i + 2]; + // 璁$畻鍘熼《鐐瑰潗鏍囦腑蹇冪偣 + // + var minX = _Min(v1.position.x, v2.position.x, v3.position.x); + var minY = _Min(v1.position.y, v2.position.y, v3.position.y); + var maxX = _Max(v1.position.x, v2.position.x, v3.position.x); + var maxY = _Max(v1.position.y, v2.position.y, v3.position.y); + var posCenter = new Vector2(minX + maxX, minY + maxY) * 0.5f; + // 璁$畻鍘熷椤剁偣鍧愭爣鍜孶V鐨勬柟鍚� + // + Vector2 triX, triY, uvX, uvY; + Vector2 pos1 = v1.position; + Vector2 pos2 = v2.position; + Vector2 pos3 = v3.position; + if (Mathf.Abs(Vector2.Dot((pos2 - pos1).normalized, Vector2.right)) + > Mathf.Abs(Vector2.Dot((pos3 - pos2).normalized, Vector2.right))) + { + triX = pos2 - pos1; + triY = pos3 - pos2; + uvX = v2.uv0 - v1.uv0; + uvY = v3.uv0 - v2.uv0; + } + else + { + triX = pos3 - pos2; + triY = pos2 - pos1; + uvX = v3.uv0 - v2.uv0; + uvY = v2.uv0 - v1.uv0; + } + // 璁$畻鍘熷UV妗� + // + var uvMin = _Min(v1.uv0, v2.uv0, v3.uv0); + var uvMax = _Max(v1.uv0, v2.uv0, v3.uv0); + var uvOrigin = new Vector4(uvMin.x, uvMin.y, uvMax.x, uvMax.y); + // 涓烘瘡涓《鐐硅缃柊鐨凱osition鍜孶V锛屽苟浼犲叆鍘熷UV妗� + // + v1 = _SetNewPosAndUV(v1, this.OutlineWidth, posCenter, triX, triY, uvX, uvY, uvOrigin); + v2 = _SetNewPosAndUV(v2, this.OutlineWidth, posCenter, triX, triY, uvX, uvY, uvOrigin); + v3 = _SetNewPosAndUV(v3, this.OutlineWidth, posCenter, triX, triY, uvX, uvY, uvOrigin); + // 搴旂敤璁剧疆鍚庣殑UIVertex + // + m_VetexList[i] = v1; + m_VetexList[i + 1] = v2; + m_VetexList[i + 2] = v3; + } + } + + + private static UIVertex _SetNewPosAndUV(UIVertex pVertex, int pOutLineWidth, + Vector2 pPosCenter, + Vector2 pTriangleX, Vector2 pTriangleY, + Vector2 pUVX, Vector2 pUVY, + Vector4 pUVOrigin) + { + // Position + var pos = pVertex.position; + var posXOffset = pos.x > pPosCenter.x ? pOutLineWidth : -pOutLineWidth; + var posYOffset = pos.y > pPosCenter.y ? pOutLineWidth : -pOutLineWidth; + pos.x += posXOffset; + pos.y += posYOffset; + pVertex.position = pos; + // UV + var uv = pVertex.uv0; + uv += new Vector4((pUVX / pTriangleX.magnitude * posXOffset * (Vector2.Dot(pTriangleX, Vector2.right) > 0 ? 1 : -1)).x, (pUVX / pTriangleX.magnitude * posXOffset * (Vector2.Dot(pTriangleX, Vector2.right) > 0 ? 1 : -1)).y, 0, 0); + uv += new Vector4((pUVY / pTriangleY.magnitude * posYOffset * (Vector2.Dot(pTriangleY, Vector2.up) > 0 ? 1 : -1)).x, (pUVY / pTriangleY.magnitude * posYOffset * (Vector2.Dot(pTriangleY, Vector2.up) > 0 ? 1 : -1)).y, 0, 0); + pVertex.uv0 = uv; + // 鍘熷UV妗� + pVertex.uv1 = new Vector2(pUVOrigin.x, pUVOrigin.y); + pVertex.uv2 = new Vector2(pUVOrigin.z, pUVOrigin.w); + + return pVertex; + } + + + private static float _Min(float pA, float pB, float pC) + { + return Mathf.Min(Mathf.Min(pA, pB), pC); + } + + + private static float _Max(float pA, float pB, float pC) + { + return Mathf.Max(Mathf.Max(pA, pB), pC); + } + + + private static Vector2 _Min(Vector2 pA, Vector2 pB, Vector2 pC) + { + return new Vector2(_Min(pA.x, pB.x, pC.x), _Min(pA.y, pB.y, pC.y)); + } + + + private static Vector2 _Max(Vector2 pA, Vector2 pB, Vector2 pC) + { + return new Vector2(_Max(pA.x, pB.x, pC.x), _Max(pA.y, pB.y, pC.y)); + } + + + // 鐢熸垚鏉愯川姹犵殑閿� + private string GetMaterialKey(Color color, int width) + { + // 浣跨敤棰滆壊鐨凴GBA鍊煎拰瀹藉害鐢熸垚鍞竴閿� + return string.Format("{0}_{1}_{2}_{3}_{4}", + color.r, color.g, color.b, color.a, width); + } +} \ No newline at end of file diff --git a/Main/Component/UI/Core/OutlineEx.cs.meta b/Main/Component/UI/Core/OutlineEx.cs.meta new file mode 100644 index 0000000..14a3297 --- /dev/null +++ b/Main/Component/UI/Core/OutlineEx.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0952a679e87c6c743874501bacc08eb9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Main/Config/Configs/HeroConfig.cs b/Main/Config/Configs/HeroConfig.cs index 88e542d..39e4fb0 100644 --- a/Main/Config/Configs/HeroConfig.cs +++ b/Main/Config/Configs/HeroConfig.cs @@ -1,6 +1,6 @@ 锘�//-------------------------------------------------------- // [Author]: YYL -// [ Date ]: Tuesday, July 15, 2025 +// [ Date ]: Wednesday, July 16, 2025 //-------------------------------------------------------- using System.Collections.Generic; @@ -14,6 +14,7 @@ { public int HeroID; + public string Name; public int Country; public int Quality; public int Class; @@ -25,6 +26,7 @@ public int HPInheritPer; public string BatAttrDict; public int[] FetterIDList; + public float UIScale; public override int LoadKey(string _key) { @@ -38,19 +40,21 @@ string[] tables = input.Split('\t'); int.TryParse(tables[0],out HeroID); - int.TryParse(tables[1],out Country); + Name = tables[1]; - int.TryParse(tables[2],out Quality); + int.TryParse(tables[2],out Country); - int.TryParse(tables[3],out Class); + int.TryParse(tables[3],out Quality); - if (tables[4].Contains("[")) + int.TryParse(tables[4],out Class); + + if (tables[5].Contains("[")) { - SkinIDList = JsonMapper.ToObject<int[]>(tables[4]); + SkinIDList = JsonMapper.ToObject<int[]>(tables[5]); } else { - string[] SkinIDListStringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); + string[] SkinIDListStringArray = tables[5].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); SkinIDList = new int[SkinIDListStringArray.Length]; for (int i=0;i<SkinIDListStringArray.Length;i++) { @@ -58,31 +62,33 @@ } } - int.TryParse(tables[5],out AtkSkillID); + int.TryParse(tables[6],out AtkSkillID); - int.TryParse(tables[6],out AngerSkillID); + int.TryParse(tables[7],out AngerSkillID); - int.TryParse(tables[7],out AtkInheritPer); + int.TryParse(tables[8],out AtkInheritPer); - int.TryParse(tables[8],out DefInheritPer); + int.TryParse(tables[9],out DefInheritPer); - int.TryParse(tables[9],out HPInheritPer); + int.TryParse(tables[10],out HPInheritPer); - BatAttrDict = tables[10]; + BatAttrDict = tables[11]; - if (tables[11].Contains("[")) + if (tables[12].Contains("[")) { - FetterIDList = JsonMapper.ToObject<int[]>(tables[11]); + FetterIDList = JsonMapper.ToObject<int[]>(tables[12]); } else { - string[] FetterIDListStringArray = tables[11].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); + string[] FetterIDListStringArray = tables[12].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); FetterIDList = new int[FetterIDListStringArray.Length]; for (int i=0;i<FetterIDListStringArray.Length;i++) { int.TryParse(FetterIDListStringArray[i],out FetterIDList[i]); } } + + float.TryParse(tables[13],out UIScale); } catch (Exception exception) { diff --git a/Main/ResModule/UILoader.cs b/Main/ResModule/UILoader.cs index 5a8d187..07a01d4 100644 --- a/Main/ResModule/UILoader.cs +++ b/Main/ResModule/UILoader.cs @@ -11,17 +11,17 @@ { public static GameObject LoadWindow(string name) { - return ResManager.Instance.LoadAsset<GameObject>("UI", name); + return ResManager.Instance.LoadAsset<GameObject>(ResourcesPath.UI_WINDOW_SUFFIX, name); } public static GameObject LoadPrefab(string _name) { - return ResManager.Instance.LoadAsset<GameObject>("UIComp", _name); + return ResManager.Instance.LoadAsset<GameObject>(ResourcesPath.UI_PREFAB_SUFFIX, _name); } public static void UnLoadPrefab(string _assetName) { - ResManager.Instance.UnloadAsset("UIComp", _assetName); + ResManager.Instance.UnloadAsset(ResourcesPath.UI_PREFAB_SUFFIX, _assetName); } public static Sprite LoadSprite(string _iconKey) @@ -37,7 +37,7 @@ public static Sprite LoadSprite(string _folder, string _file) { - return ResManager.Instance.LoadAsset<Sprite>("Sprite/" + _folder, _file); + return ResManager.Instance.LoadAsset<Sprite>(StringUtility.Contact(ResourcesPath.UI_SPRITE_SUFFIX, "/", _folder) , _file); } public static void UnLoadSprite(string _iconKey) @@ -45,18 +45,18 @@ var iconConfig = IconConfig.Get(_iconKey); if (iconConfig != null) { - var bundleName = StringUtility.Contact("Sprite/", iconConfig.folder); + var bundleName = StringUtility.Contact(ResourcesPath.UI_SPRITE_SUFFIX, "/", iconConfig.folder); ResManager.Instance.UnloadAsset(bundleName, iconConfig.sprite); } } public static Font LoadFont(string _fontName) { - return ResManager.Instance.LoadAsset<Font>("Font", _fontName); + return ResManager.Instance.LoadAsset<Font>(ResourcesPath.UI_FONT_SUFFIX, _fontName); } public static void UnLoadFont(string _fontName) { - ResManager.Instance.UnloadAsset("Font", _fontName); + ResManager.Instance.UnloadAsset(ResourcesPath.UI_FONT_SUFFIX, _fontName); } } diff --git a/Main/System/Battle/BattleHUDWin.cs b/Main/System/Battle/BattleHUDWin.cs index 61bc946..3a32be2 100644 --- a/Main/System/Battle/BattleHUDWin.cs +++ b/Main/System/Battle/BattleHUDWin.cs @@ -43,7 +43,7 @@ EventBroadcast.Instance.AddListener<BattleObject, List<int>>(EventName.BATTLE_DAMAGE_TAKEN, OnDamageTaken); EventBroadcast.Instance.AddListener<BattleObject, SkillConfig>(EventName.BATTLE_BUFF_MOUNTED, OnBuffMounted); EventBroadcast.Instance.AddListener<BattleObject, SkillConfig>(EventName.BATTLE_BUFF_DISAPEAR, OnBuffDisapear); - damagePrefabPool = GameObjectPoolManager.Instance.RequestPool(ResManager.Instance.LoadAsset<GameObject>("UIComp", "DamageContent")); + damagePrefabPool = GameObjectPoolManager.Instance.RequestPool(UILoader.LoadPrefab("DamageContent")); // buffIconPrefabPool = GameObjectPoolManager.Instance.RequestPool(); // buffLabelPrefabPool = GameObjectPoolManager.Instance.RequestPool(ResManager.Instance.LoadAsset<GameObject>("UIComp", "BuffContent")); } diff --git a/Main/System/Hero/HeroInfo.cs b/Main/System/Hero/HeroInfo.cs index 156e4e8..f3bcba5 100644 --- a/Main/System/Hero/HeroInfo.cs +++ b/Main/System/Hero/HeroInfo.cs @@ -40,6 +40,15 @@ } } + // 浼樺厛鍔熻兘鎻愰啋绫诲瀷锛�1瑙夐啋 2鍗囩骇 3绐佺牬 4鍗囨槦 + // 浼樺厛椤哄簭锛� + public int funcState + { + get + { + return 0; + } + } diff --git a/Main/System/Hero/HeroManager.cs b/Main/System/Hero/HeroManager.cs index 3fce894..27d2368 100644 --- a/Main/System/Hero/HeroManager.cs +++ b/Main/System/Hero/HeroManager.cs @@ -13,6 +13,9 @@ //姝﹀皢鍒楄〃鐣岄潰 public List<string> heroSortList = new List<string>(); + //姝﹀皢绾㈢偣 + //MainRedDot.HeroCardRedpoint * 1000 + hero.itemHero.gridIndex; + public Action<HeroInfo> onNewHeroEvent; public Action<HeroInfo> onHeroChangeEvent; diff --git a/Main/System/Hero/UIHeroController.cs b/Main/System/Hero/UIHeroController.cs index dde8706..241063a 100644 --- a/Main/System/Hero/UIHeroController.cs +++ b/Main/System/Hero/UIHeroController.cs @@ -6,11 +6,11 @@ using UnityEngine.EventSystems; public class UIHeroController : MonoBehaviour { - public void Create(int _skinID, Action _onComplete = null) + public void Create(int _skinID, float scale = 1f, Action _onComplete = null) { skinID = _skinID; onComplete = _onComplete; - GameObject battleGO = ResManager.Instance.LoadAsset<GameObject>("Hero/SpineRes", "Hero_001"); + GameObject battleGO = UILoader.LoadPrefab("UIHero"); GameObject instanceGO = null; if (!transform.gameObject.activeSelf) { @@ -21,6 +21,7 @@ var skinConfig = HeroSkinConfig.Get(skinID); skeletonGraphic.skeletonDataAsset = ResManager.Instance.LoadAsset<SkeletonDataAsset>("Hero/SpineRes/", skinConfig.SpineRes + "_SkeletonData"); skeletonGraphic.Initialize(true); + this.transform.localScale = Vector3.one * scale; spineAnimationState = skeletonGraphic.AnimationState; PlayAnimation(MotionName.idle, true); diff --git a/Main/System/HeroUI/HeroCardCell.cs b/Main/System/HeroUI/HeroCardCell.cs index a43bcd6..489a768 100644 --- a/Main/System/HeroUI/HeroCardCell.cs +++ b/Main/System/HeroUI/HeroCardCell.cs @@ -1,11 +1,12 @@ -锘縰sing UnityEngine; +using UnityEngine; using UnityEngine.UI; -using UnityEngine.Events; using System.Collections.Generic; public class HeroCardCell : MonoBehaviour { [SerializeField] Button heroCardBtn; + [SerializeField] Image heroCardBG; + [SerializeField] Material glowMaterial; // 娴佸厜鏁堟灉鏉愯川 [SerializeField] Text lvText; [SerializeField] Image countryImg; [SerializeField] Image jobImg; @@ -26,12 +27,53 @@ this.gameObject.SetActive(false); return; } + this.gameObject.SetActive(true); - lvText.text = hero.heroLevel.ToString(); + heroCardBG.SetSprite("herocardbg" + hero.Quality); + if (glowMaterial != null) + { + heroCardBG.material = glowMaterial; + } + lvText.text = Language.Get("L1094") + hero.heroLevel.ToString(); var heroConfig = hero.heroConfig; - countryImg.SetSprite("herocountry" + hero.heroCountry); + countryImg.SetSprite("herocountry" + heroConfig.Country); jobImg.SetSprite("herojob" + heroConfig.Class); - heroModel.Create(heroConfig.SkinIDList[hero.SkinIndex]); + heroModel.Create(heroConfig.SkinIDList[hero.SkinIndex], heroConfig.UIScale); + onStateImg.SetActive(hero.isInMainBattle); + + redpoint.redpointId = MainRedDot.HeroCardRedpoint * 1000 + hero.itemHero.gridIndex; + var funcState = hero.funcState; + if (funcState > 0) + { + trainStateImg.SetActive(true); + trainStateImg.SetSprite("herofuncstate" + hero.funcState); + } + else + { + trainStateImg.SetActive(false); + } + nameText.text = hero.breakLevel == 0 ? heroConfig.Name : Language.Get("herocardbreaklv" + heroConfig.Name + hero.breakLevel); + awakeImg.SetActive(hero.awakeLevel > 0); + awakeLVText.text = hero.awakeLevel.ToString(); + + for (int i = 0; i < starImgList.Count; i++) + { + if (hero.heroStar == 0 && i == 0) + { + // 鏃犳槦绾� 鐗规畩澶勭悊 + starImgList[i].SetActive(true); + starImgList[i].SetSprite("herostar" + hero.heroStar); + } + else if ((hero.heroStar - 1) % starImgList.Count >= i) + { + starImgList[i].SetActive(true); + starImgList[i].SetSprite("herostar" + (((hero.heroStar - 1)/starImgList.Count)+1)*starImgList.Count); + } + else + { + starImgList[i].SetActive(false); + } + } } } diff --git a/Main/System/HeroUI/HeroCardLineCell.cs b/Main/System/HeroUI/HeroCardLineCell.cs index 3b68921..7b19201 100644 --- a/Main/System/HeroUI/HeroCardLineCell.cs +++ b/Main/System/HeroUI/HeroCardLineCell.cs @@ -12,7 +12,7 @@ if (i + index < HeroManager.Instance.heroSortList.Count) { cardList[i].SetActive(true); - cardList[i].Display(index); + cardList[i].Display(index + i); } else { diff --git a/Main/System/HeroUI/HeroListWin.cs b/Main/System/HeroUI/HeroListWin.cs index bf6a6e9..8e797ce 100644 --- a/Main/System/HeroUI/HeroListWin.cs +++ b/Main/System/HeroUI/HeroListWin.cs @@ -63,8 +63,11 @@ { heroListScroller.Refresh(); for (int i = 0; i < HeroManager.Instance.heroSortList.Count; i++) - { - heroListScroller.AddCell(ScrollerDataType.Header, i); + { + if (i % 4 == 0) + { + heroListScroller.AddCell(ScrollerDataType.Header, i); + } } heroListScroller.Restart(); } diff --git a/Main/System/Redpoint/MainRedDot.cs b/Main/System/Redpoint/MainRedDot.cs index 468ede6..1cfbc13 100644 --- a/Main/System/Redpoint/MainRedDot.cs +++ b/Main/System/Redpoint/MainRedDot.cs @@ -18,26 +18,25 @@ public Redpoint redpointGuild = new Redpoint(MainGuildRedpoint); - public const int RedPoint_key = 11; - public const int FAIRY_REDPOINT_KEY1 = 107; - public const int RedPoint_UpFuncBase = 12; + //浠ヤ笅绾㈢偣瑙勫垯锛氬姛鑳藉熀纭�绾㈢偣3浣嶆暟锛屽瓙绾㈢偣鑷冲皯澶т簬1000锛� + //姣斿鍔熻兘A绾㈢偣100锛屽瓙绾㈢偣1001锛屼互姝ょ被鎺紝鎴栬��100*10000 +1绫绘帹锛岄伩鍏嶉噸澶嶇殑鍙兘鎬э紝濡�1010 灏卞彲鑳藉拰鍔熻兘B涓殑绾㈢偣閲嶅 + // 鍔熻兘B绾㈢偣101锛屽瓙绾㈢偣1011锛屼互姝ょ被鎺紝鎴栬��101*10000 +1绫绘帹锛岄伩鍏嶉噸澶嶇殑鍙兘鎬� - private Redpoint rightTopRedpint = new Redpoint(RedPoint_UpFuncBase); - private Redpoint redPointStrePrentOne = new Redpoint(RedPoint_key); + //姝﹀皢鍗� + public const int HeroCardRedpoint = 200; + public Redpoint HeroCardRedpoint1 = new Redpoint(MainHerosRedpoint, HeroCardRedpoint); - - //public Redpoint jadeDynastyRedpoint = new Redpoint(1, 117); #region 閭欢绾㈢偣 - public const int RedPoint_MainMailKey = 24; + public const int RedPoint_MainMailKey = 240; public const int RedPoint_MailFuncKey = 2401; public Redpoint redpointMainMail = new Redpoint(RedPoint_MainMailKey); public Redpoint redpointMailFunc = new Redpoint(RedPoint_MainMailKey, RedPoint_MailFuncKey); #endregion #region 濂藉弸绾㈢偣 - public const int RedPoint_FriendQuestKey = 26; - public const int RedPoint_FriendChatKey = 25; //濂藉弸 + public const int RedPoint_FriendQuestKey = 260; + public const int RedPoint_FriendChatKey = 250; //濂藉弸 public Redpoint redpointFriendQuest = new Redpoint(RedPoint_FriendQuestKey); public Redpoint redPointFriendChat = new Redpoint(RedPoint_FriendChatKey); #endregion @@ -56,15 +55,12 @@ #region 浠欑洘鍏敤绾㈢偣 public const int FAIRY_REDPOINT_KEY2 = 10701; - public Redpoint fairyLaunch = new Redpoint(RedPoint_key, FAIRY_REDPOINT_KEY1); - public Redpoint fairyBaseFuncRedPoint = new Redpoint(FAIRY_REDPOINT_KEY1, FAIRY_REDPOINT_KEY2); #endregion #region 浠欑洘鍟嗗簵绾㈢偣 public const int FAIRYStore_REDPOINT_KEY3 = 1070106; - public Redpoint fairyStoreRedPoint = new Redpoint(FAIRY_REDPOINT_KEY2, FAIRYStore_REDPOINT_KEY3); #endregion diff --git a/Main/System/Tip/ScrollTip.cs b/Main/System/Tip/ScrollTip.cs index dbccf6d..f4937a2 100644 --- a/Main/System/Tip/ScrollTip.cs +++ b/Main/System/Tip/ScrollTip.cs @@ -59,7 +59,7 @@ ScrollTipDetail tip = null; if (pool == null) { - var _prefab = ResManager.Instance.LoadAsset<GameObject>("UIComp", "Tip");// UILoader.LoadPrefab("Tip"); + var _prefab = UILoader.LoadPrefab("Tip"); pool = GameObjectPoolManager.Instance.RequestPool(_prefab); } if (pool != null) diff --git a/Main/Utility/UIUtility.cs b/Main/Utility/UIUtility.cs index 27be3a0..f4fbbb2 100644 --- a/Main/Utility/UIUtility.cs +++ b/Main/Utility/UIUtility.cs @@ -11,7 +11,7 @@ public static GameObject CreateWidget(string _sourceName, string _name) { - var prefab = ResManager.Instance.LoadAsset<GameObject>("UIComp", _sourceName); + var prefab = UILoader.LoadPrefab(_sourceName); if (prefab == null) { return null; -- Gitblit v1.8.0