From 9ce088b12fc0baebd311986858c887697a98a3b0 Mon Sep 17 00:00:00 2001 From: coffee <985942825@qq.com> Date: Sat, 25 Jan 2025 16:56:06 +0800 Subject: [PATCH] =?UTF-8?q?List=E6=B3=9B=E5=9E=8B=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/ExcelResolver/Excel/hero.xlsx | Bin 10878 -> 10876 bytes Assets/ScriptableObject/Excel/Hero_1.asset | 6 +++- Assets/ScriptableObject/Excel/Hero_2.asset | 2 +- Assets/ScriptableObject/Excel/Hero_3.asset | 3 +- Assets/Scripts/Generator/Excel/Hero.cs | 2 +- Assets/Scripts/Test.cs | 13 ++++++++ Assets/Scripts/Test.cs.meta | 3 ++ .../ExcelResolver/Editor/Core/Types/TList.cs | 29 +++++++++--------- 8 files changed, 40 insertions(+), 18 deletions(-) create mode 100644 Assets/Scripts/Test.cs create mode 100644 Assets/Scripts/Test.cs.meta diff --git a/Assets/ExcelResolver/Excel/hero.xlsx b/Assets/ExcelResolver/Excel/hero.xlsx index 5fbf86829e111a5c15ea893a1e4dd448c8ea332e..6c281b5ca704a09bda023a73bad67150b725884f 100644 GIT binary patch delta 2130 zcmV-Y2(9=2RQy!1o&g1eW1DSWlcNDDe@)U^k*DQj*MV*S>+E z_r8SefwuQB?f$r-c$u8@{c_Gn(!sp0f)_Bh)T)nYL{I=qXj!VFkM76A@B#(aaV2@B z74*>pEE;5|C#h(d&<1XeZos$_Y~V@CGST$W#JPrHY{dj>ZX@qdUd*+rx${R;f8d6T zXI=n~2|33#I4-&4xCMsIo`|+cDfY-_YN`$(1%?W0P|ji+QT*d|U~2p4K&Koy>(VV6 z-)S57kS)bV+`H$t+#6@JSv2c)F?@cCA4fNLUDdEu?XCo%ER})@1Keqo37zKvI#=3G z3vN<;ptXCfxOF4H^1K9jxyaUUQXlL0&(-p4wR}zSZ{4H2CL2D;z-MEdCOhS!cXd4; zqAVtHFCC`Mzep zQ8sMv@lWx^6jiX+rkG-2Pwa+`vGFl%|Ls`9F$^rF13;-*2t(8p|fDH+LDh#_}A6$*T%{(KrI z&_yo2L-BFuehDV~u?yn@@lS%Q^5)uM=e&I&=2{_^SL*B;nVP!dE$NubX@uVVkeiiSZF#Qnn=Nze&u0&NFxHHe-L1YKxQ8 znL#mq?}3v>Bn1Zeb+Uxp*>y7XE^C$1LFhe(53Uo5e$|O zM=ZODzK&RR5d$5u?jjy^#HNdQ)Dcfz#85|UyNHpF*mV(O9r4^n1g#RHWiJ+p(bc^L z(zaF8v;RwaDs-!-A;!W2G1OREAch>P`;fH-Vo0{JK#W>{w)Y`B3&c?V*#a@7f3ZLe z?e|?s*lMq-Huxpg6k4ek8irX|Agy79?UojZq5Y~0G1|TEB0>YQu|N!WY%LH&`ke)0 zie`bBqTPq=Es$1MO*D9Y-+gteH>UzC&H5jB;qgB0K+!62OKVtRWr4I-&=xd=%yKIU zC$Lx5d&y#d2v^s+LAwNSo6|IoHfb1QE&1Bj3p;M=EIniVX(;x2zNu{`cataxO-qS4Jhvky^tF!rHbO_FT(oqtlyu z^ug?mM)iS5;o$YraY55~Y^@ujRj~sj{YslOYF^8K$%9}u0yi?($QXXo_>2y2>ll4= z-O16wGqOKxRE9TSv`NF8aFFI+hZCL3Bt@48UwIxY&pG*A*{K9b1>(9#q3fz1u8IoO}@jY8&peZ0$)wy zV`=6S7KAd262=`R$u@$8AI{a+-TZ&E1_?e22}Qws1L^?)0I!ox6C8ikPixdb6aetM z;CEOumkMc;{gWb+q=@Lnn^v!7n!MeFPG(|ecG<-hDk!yxdz|0BDilfEyrj84@H#lo^L$ZxU+iQXh=nQM48~= z8zYd$dT{lMC#7oCwOoJtMyynJ!?tA@LrSG3GT?QjEAo`8dYSiZndLwu83U-4*)7Le zvs0RIqY;WeSH9uakL~m1Q6FwCpyL{WCzHTa0U`J6VHn(n(FWaOFixVeXRE-o|Hl92 z3}}uqiLh{*0=6U+99vAKMi~}Duu!#)NoD}r7@5%8*GH!rRf>Ox+nb8!Jy5tYA!?NA zo8elbRC#@TxO__phONs4)yf}2s6^hzxr0k?VP=U`=F&cdB)ltd{(S#?b@B{r@#>(Q ze8W0>w^y8gDEGeL!2IJ*wR?zlb~G(^r^U+?94IH#YUe%Hi}Qo>{1oe=$;I#E;`xj6 z*933U++t-vcAi*6CWpABdiuKf^c8Cix!7!C zU2)8&*}1liHFPX@yxOwX#_e&(a&gIJf9+yt$7khR{h~hqD1I)VPolLdogn{8f`4JT9q9g|`w zKnHgO004MwFOym+9Fh$L3jhEB0000G0002hlhh|R0sNB-C@mXB!FvPh0RRB61ONaO z000000000103ZMW05FqNC_w>Sla(ks0pOF+C^i8HlLsk40ZfxfDLes~lZ7cE8%r09 zEd~St03r?m02lxO000000096X0002QlffxP0ssk<;RF?v9V#yZ@CuXR1QnBGDisFP IB>(^b0H^WmfB*mh delta 2153 zcmV-v2$uK!RQ^=3o&g06D5q~RpFMk z@3f73$d+Ow?%fMp?2YsJyfg2%F?@cCAI8_WZPl<)&8`HXG?s!11Keqo3Y}#DI#b%t za&BULpf!6expiZ|@~i-Pu}s&mQ}64ykJZ=b>gy%Ozjcppn{4iM^1}FzQXnfSvUj9UKsMfV9nh{6Erf zvmFDq0SUr_DX$9z00177+XNwhU320#6n*bZ|AWWxYhy#g#{fIaS0JG?JI!wUENlUu z*p@2`ob9jgm1N6ER+jBUh>^}c_v)S_Bu_uTXQ^|=v`k1oa|5sEIyjF=oaCpO`~BPI z)5vv7hVmGtB*!!N2QJ;u^WT4)R)oHlXN;Kx40$Z*fEiWY_*$Oe_&Zk0wuhgGU;{>|MrFSSk z&fG7-WIuLcTp<2Ra8=$sI}9COaf%~`W3Ywx4D~p-0B}YWvE+)EI8A5n zz7HcsenE-71*^zS5Q=b1Zpo3THCNwvkv>CB*%zW2aM zBa#9Gd^%ae&FnfEdY6^T=pghS!w1)iL^o>6pbnKmVI2hjt2zjFz)u1K*fBBb;)1riaP0Mm)-YeTLo}KTKc7-kIj|`pBWzdrl&g}>mcs?& zJ2{vHpk&0cUlbUB`dq^3b>5r$R}d|NKOj`BP|{u2P|+&1q74+SNWADGLLIT}BKkUF z)kO?+#JY=k&=H$1;!#IDbrC}yvF##8I%3yFjCI6w7ZJ2dh?c!rAVydB7D(GxO;5gK z@42MaQ=wZu4KWrLh@r;P0x{%R-G{6#5JR$!1!B~)y${)cSs;e;&lZRw{fh-+XfJ*} zg%+y2VXM8S+TeewrqC^~VVH#l(i%qCZfSuS+ON70quuK+A~YZy3&e28)&eo4-&r80 zXcmYm+I`600%>*CM1!C2yIW2Daw@RWtp9-*9`Dl*6s-ccw1yQ{7D#IaZ9zlGERT|K z0%uiymMn&U@N}IUv`YZDIZfkelZGMIlCNF8u;ZrA(lf@NhT@#(huT&`ZuXFf+|`j@ zyDBmMtQBEc?nRq4%(mAiTbpUk;uq|uS-b*~b1@RVGAdb))EZV0*0#;C=UPS^o!-== z4`ydHst-I07q5@53!27bYuym7iX9l~SK6de^IA@S9t5iqxRJR=#_*HIXLN8|$LNRa zPL2kik^NbtGQ9bsO&Z>WYc%(In_WsSuf6g%R-hC91JP5Gmrjb0(4U?MexdSCE1nrC z#3=0f17UE1Z@!)3Jqm-9dmfw~M?zTh1#ZEd_Z72C;S{LA^fmbxUfZBnLKApn5-&0000yK004MwFLP*Na%E&w zbaH8KXLBxiZES6n-)a*<6vpob-(lIgsSvY&l8DG=i-_KMr`6js-95<;ot;^CCLzHU zDk!x|QLq=)3MwK&gjVrFF!pV_+2k!;8w5F%%lUoZIs46=nGM!QDYu4@D<(zP_J5kL zZGnhn%tXIy-`lu#`KoOxO+`$(6wtNDpzQVV;)OsdZPm3xb?rp!?3&}KD1nr!rp!Rp zN>An~)%7y(J1Wb8#wr2ODR+F=z2c;l3EPU~K|@NC z(gia^5W+-HV)y*T_r=i@Ov_jM)#Mwdvv+&t@rP>f3l`=dcNV)ZF`XSu%YWTz`TPhA z)nvNZd5`JY>3(&3jOnt;+3&;h>9gwB1j~fP=FkYqs7|o;x>BH(b8{2{zXMA0`o%3* z&O`T6bHvpMmn@lOZV@vuYKS5CJih{v|*G zi<3VlGXbxYb0(7o3@E2>Uy}0000yK0000000031AOHXWHj_~(K@DCP004MwFLQKxY-Mwk5GEj#zbFm?=9A7S zHUSNj1t~xQPLoC{JOP=LgDD{!!h$KU3j_cF9u5Ei7ytkO000000RSKX00704zbQom f1__hk1QnATDlY=|3X|Xj6_a5q6$aHM00000bB* /// 攻击优先级 /// - public List attack_target; + public List attack_target; } } diff --git a/Assets/Scripts/Test.cs b/Assets/Scripts/Test.cs new file mode 100644 index 0000000..faa96b1 --- /dev/null +++ b/Assets/Scripts/Test.cs @@ -0,0 +1,13 @@ +using System; +using Tools.ExcelResolver; +using UnityEngine; + +public class Test : MonoBehaviour +{ + public Hero hero; + + private void Start() + { + var a = hero.speed; + } +} \ No newline at end of file diff --git a/Assets/Scripts/Test.cs.meta b/Assets/Scripts/Test.cs.meta new file mode 100644 index 0000000..293a04e --- /dev/null +++ b/Assets/Scripts/Test.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: aec833e1dd444669b614d6c2222c59b6 +timeCreated: 1737794427 \ No newline at end of file diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TList.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TList.cs index 753de1b..fe644d4 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TList.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TList.cs @@ -1,28 +1,28 @@ using System; +using System.Collections; using System.Collections.Generic; namespace Tools.ExcelResolver.Editor { internal class TList : TType { - internal override Type RealType => typeof(List); - internal override string FieldWriteFormat => "List"; - internal override object DefaultValue => new List(); + internal override Type RealType => typeof(List<>).MakeGenericType(InnerType.RealType); + internal override string FieldWriteFormat => $"List<{InnerType.RealType.Name}>"; + internal override object DefaultValue => Activator.CreateInstance(typeof(List<>).MakeGenericType(InnerType.RealType)); + + internal TType InnerType { get; set; } internal override bool String2TType(string typeText) { - var split = typeText.Split('|'); - if (split.Length != 2) + var split = typeText.Split(','); + if (split.Length < 2 || !string.Equals(split[0], "list", StringComparison.OrdinalIgnoreCase)) { return false; } - if (!string.Equals(split[0], "list", StringComparison.OrdinalIgnoreCase) || !string.Equals(split[1], "int", StringComparison.OrdinalIgnoreCase)) - { - return false; - } + InnerType = ExcelResolverUtil.GetTTypeByString(split[1]); - return true; + return InnerType != null; } internal override object TryParseFrom(string cellText) @@ -30,16 +30,17 @@ namespace Tools.ExcelResolver.Editor var split = cellText.Split('|'); if (split.Length > 0) { - var list = new List(); + var list = (IList)Activator.CreateInstance(typeof(List<>).MakeGenericType(InnerType.RealType)); foreach (var s in split) { - if (int.TryParse(s, out var result)) + var parsedValue = InnerType.TryParseFrom(s); + if (parsedValue != null) { - list.Add(result); + list.Add(parsedValue); } else { - return null; + return null; // 任意一个解析失败则返回null } }