From 50278a22df95f062a518fbd0a21c3f9dd1a86232 Mon Sep 17 00:00:00 2001 From: coffee <985942825@qq.com> Date: Sat, 25 Jan 2025 15:58:28 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E9=BB=98=E8=AE=A4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/ExcelResolver/Excel/hero.xlsx | Bin 10838 -> 10878 bytes Assets/ExcelResolver/Json.meta | 8 ------- Assets/ScriptableObject/Excel/Hero_1.asset | 1 + Assets/ScriptableObject/Excel/Hero_2.asset | 10 ++++----- Assets/Scripts/Generator/Excel/Hero.cs | 5 +++++ .../ExcelResolver/Editor/Core/Types/TBool.cs | 4 ++-- .../ExcelResolver/Editor/Core/Types/TFloat.cs | 1 + .../ExcelResolver/Editor/Core/Types/TInt.cs | 1 + .../ExcelResolver/Editor/Core/Types/TList.cs | 21 +++++++++++++++++- .../Editor/Core/Types/TString.cs | 1 + .../ExcelResolver/Editor/Core/Types/TType.cs | 6 +++-- .../Editor/Core/Types/TVector2.cs | 1 + .../Editor/Core/Types/TVector3.cs | 1 + .../Core/Util/ExcelResolverUtil.Cell.cs | 13 +++++++++-- .../ExcelResolverEditorWindow.WriteSOData.cs | 2 -- 15 files changed, 53 insertions(+), 22 deletions(-) delete mode 100644 Assets/ExcelResolver/Json.meta diff --git a/Assets/ExcelResolver/Excel/hero.xlsx b/Assets/ExcelResolver/Excel/hero.xlsx index ca6fb04d2c4494a44df1df84502b37140350d2fb..5fbf86829e111a5c15ea893a1e4dd448c8ea332e 100644 GIT binary patch delta 2147 zcmV-p2%PuURQ^=3o&g06D5q~4Lfe7Lt{ezX6z@XvwJWwsNiw%x`v!vE z`x4>5kf6c`c z&jCk-^l=4_OYS&sfMLBSqAgO2J+hvevIR(ip@a&QvzT@${_#36mHl&|RSuk0;g+@U zw2gbnmSQ9B-3wdnjq~}uGw-%Be13`_#@DxP)v!>_t^}YomVyZb+-Z{von-(zQ`*jQ zZeo0(HG3?%bz{HstN?kjOxLgPQtP*m)z|0h>m|m&b&qbFZ1^AppN(yr?3DZN<<(?_ z(uhRekn}P^Uio%I&OP_)o+BhrKfhzLjT;nF9=YIdjj96%*etqchHbQ0b8Z z=P+|5G(!x&(vx2n6r)%KWvL(bdXIjFlH8RH6Z$J0AOCm~2a%5gaGGCU~UFFyxYwOIS4w0o<8KQ5O z;u8=Tu((5#ChUh;Zc`9uEl*W{RbEw;UX<5W+%zZ{`j{;*B_r7iG33stLV>T;pHJfi zy2zz>C_c{IFTrF#c41r~{z`CF-aI=D9bR#YBZgzJitBI-90+;iz#Rf#O}33N%~$Hg_=qkkTaxteBxdKCJ9e9Yu|G+*#mVW+ zpp?G%z)2&L0t0+HS;EciIvIMGmCEQK^d7?p*NH?oYRaGvl|f-01pli#2zJ0v0s`1E zG7UU5A!F}Onm`rD`zRBIAuQvkshZ+~wz_ca^@r9lU$#RunhQUlQc^jvDIg!q7m;|6?#Iaw06d3wk!svD0oBCG}ErLHFRIE_aUDi<1Dzu^v6s<_S=psTL zvFsxHI%3sD40Oc0i+Ioxn=ax}M?7^ALmjd0B1Sr5*F}tV#B&!Bv`UDUy;vYdSN9f3 z+g43azGLsXq}5ZQTRjai78Z!1#?k^YEw5pig$2?YM%Zp?ff(Aax)7t?>n8VYXxmV zL&z+Tl5hfNRehF!EQauOog1`E0Jk|!<7ktHA=Z+wUA?g5rq0qc#-E1boacwyRzhy} zkciyXkzTthG5)L-VOZ`(n>5U}*Ctz=Y0csn?50_~0+Dku61_4iS&q~iRuI;<&9LWM zMjM^p)T0k(XEdr0JPH@DkFE=v#$#*U5Uq+G80lBqq*3#KT23AWs}Z=7xkkqDlg4Ls za9hXdhwDy`2A+}qS)($%`Jzo4-h^v3_j;RMN-nRx@-|kW6aE9yQ<9fXijUBro(F!R z@=hzB87agl?D+#>aDi{Wo#8zSgOht6oE}F)Sn~yL!JPLMvrFL=sKE3!`4?W>pjJW? zcw-VTN;9_?Ae2#*FzzQwwh=7+YOdbw=KlduO9KRwDjKsF2_OmyywD&#<^cczrjtMu z8-Hz--)a*<6vpob-(lIgsSvY&l8DG=i-_KMr`6js-95<;ot;^CCLzHUDk!x|QLq=) z3MwK&gjVrFF!pV_+2k!;8w5F%%lUoZIs46=nGM!QDYu4@D<(zP_L{D3frwCg+M87)qk}@b?rp!?3&}KD1nr!rp!RpN>An~)%7y( zJ1Wb8#wr2ODR+F=z2c;l3EPU~K|@NC(gia^5W+-H zV)y*T_r=i@Ov_jM)#Mwdvv+&t@rP>f3l`=dcNV)ZF`XSu%iU@D{0IxxWV+aSkLlUz zesy|`>9Wb$@5A!xv+CCb%Y?+{(0>TYs7|o;x>BH(b8{2{zXMA0`o%3*&O`T6bHvpM zmn*sZ(oz;CR70)lR76r0eF*pColomldLB;0sfQY zCoLPi&>%eK0RRA|1ONaO000000000103ZMW05+2=C_w>UlWizE0p^paC^i8Nliw&n z0Zx-3DLet0lU*qx9KwPruL}eK03Hqi02lxO000000096X0002R1e4$?6_c+iF9HS$ Zli(>t0`>}%;3*Z8J1P|h)g=G`005?<^R)l~ delta 2092 zcmV+{2-EleRMu3mo&g1+l{A=OlcNDEf3sQtgsuaXT{#e(DBgwS>sD-&l4N$f_6-ER z_a$Txw7rLEyVVZG%jBHzmvcT6jh1=ly?{2Ul0!s#0rEg{B~m#XqWkICKS!RiObV7M z2}863gGTZ3QN#<%m4;ib3eYwM<2jNvlovxZx3-`d8$O4enVxe}%h0bb#;21K!E?e+MY~4$fw#Kq7d*z^x;qnvwIJvp2tNN*|cEth3k>HeTU{>jvt0VzXiBx7W zV>-eet=eP8jGefZCn<=_RlI%sQ`o+LZq{F$^=pKG>keHvY4{*KmyI?}_R7QH>Uugx zaX;t}{2=s6e@X}?Aq|43>iL8DDr<9*??U`f4E=!khZ3q(j^T;yU-?|A@Z< zvmOJr0SeZvzpniQ000CIlO72fe=#n2ZETfSU2~f_6n*c^{s)Hlg27H4du(?af5acN zGo4Ml`z&MG)&vk0a!C8@dnEy~gf?y;;(&DSxmWibgqVDK%Tn(Zvy#w!>PJD(_i&!j z1IbTQ|J&Eq#|PglIm!FqwY5Af-r@o9NjF$AsgM?@1mxzA}uF9)xkE8uFPI1EV0j%PC!UB6rUj%RiLp{MQ0fG@F zoV?;WPSdHsjKEjrcbP<7LyEA?aedw7TS?n|Vcr2B(Iw?`n*K))fBZc4M}9N*53Sai zoX#AI=?8a$G@&Ulz^|7PVQ1gV(3`4NMMrUPAK&?2BKuKOMs=tPit8ZwU)4eI47?K{ z)~3?HMH4a#ZlsCY;zTD^qBw?Syql^iF4EP-qo6-@hJ~sfve82N*@V%`gU13g!UGGx zYE`P)YPdk+S&qgLe`uKq?B^B?eJ)}2b=I4NuOM0ie?Zu>LP_TG8Fmne)8%BC+(S=x|ExU-=a>vR6u@!MZtVA0J#FBpNfLNmK-h~*7 zz^;08M{D=V7TgLFYcCkI_qS;WEo}?dwAw#PAqPZT!N@#>%xZ^^$M6EGxA@1Q+}17O z=KyYV_ATQqe~d{ha;f;NkX4c{_mh**l6Tz8$|22XqQN0bE%`PI&l@~g#SkDMDo&0@ew-F3&5F7om=HKr-dAa4P;L_ z9MhY-Gkh&!cr1DWyhM(a^5zCkx`Ou^^Go3ssKD%*{DhA)sERTI-$n9sXzCY~afS#N z511lb3P~1m{BFPBX1@Tl1_?e22?gNNYRdrt0DqHB6B~bZ)K6>FKokJ*yWn>SGnWe6 zo$PiiDoKinUc71TRi???CODainb~C*E3_cgDy4!wR4b^66cJj*gNLQx#%wmG*BH}r3OUzpRe-dSzAAHW?6BNmx+sAsIt4JfU|rw8%yOPd;>Btp zO-OoIi8qkh!vWm*13eN2I*S4mQF_-lBj7fSSNXbt%`Djrn27@REB-fU$V-e_f<^Ki zuw}85*ixkeYAM5mBQteEt zXGb_tA5WUCw^)Ci?bT-|SSd~B9dN--ic_y^4Mww@qZq^;&`Q{^)gxq@U(vI+`z)(vMsmltbFc{Rv*7r z-{svlVd6s2CXFk0000Eo!k!q diff --git a/Assets/ExcelResolver/Json.meta b/Assets/ExcelResolver/Json.meta deleted file mode 100644 index 0a83683..0000000 --- a/Assets/ExcelResolver/Json.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 4b8a2f5e75555654bb2bb7f8ebc41d49 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/ScriptableObject/Excel/Hero_1.asset b/Assets/ScriptableObject/Excel/Hero_1.asset index 02be0de..504a333 100644 --- a/Assets/ScriptableObject/Excel/Hero_1.asset +++ b/Assets/ScriptableObject/Excel/Hero_1.asset @@ -21,3 +21,4 @@ MonoBehaviour: speed: 1.2 pos: {x: 0, y: 1, z: 4} ches: {x: 0, y: 1} + attack_target: 01000000020000000300000004000000 diff --git a/Assets/ScriptableObject/Excel/Hero_2.asset b/Assets/ScriptableObject/Excel/Hero_2.asset index 124729f..b734157 100644 --- a/Assets/ScriptableObject/Excel/Hero_2.asset +++ b/Assets/ScriptableObject/Excel/Hero_2.asset @@ -13,11 +13,11 @@ MonoBehaviour: m_Name: Hero_2 m_EditorClassIdentifier: id: 2 - name: "\u6218\u58EB" + name: icon: hero_2 has: 1 hp: 150 - atk: 15 - speed: 1 - pos: {x: -5, y: 1, z: 5} - ches: {x: -5, y: 1} + atk: 0 + speed: 0 + pos: {x: 0, y: 0, z: 0} + ches: {x: 0, y: 0} diff --git a/Assets/Scripts/Generator/Excel/Hero.cs b/Assets/Scripts/Generator/Excel/Hero.cs index 2617962..6e1f846 100644 --- a/Assets/Scripts/Generator/Excel/Hero.cs +++ b/Assets/Scripts/Generator/Excel/Hero.cs @@ -63,5 +63,10 @@ namespace Tools.ExcelResolver /// 位置 /// public Vector2 ches; + + /// + /// 攻击优先级 + /// + public List attack_target; } } diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TBool.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TBool.cs index 32298f1..a184271 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TBool.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TBool.cs @@ -4,6 +4,8 @@ namespace Tools.ExcelResolver.Editor { internal class TBool : TType { + internal override Type RealType => typeof(bool); + internal override object DefaultValue => false; internal override string FieldWriteFormat => "System.Boolean"; internal override bool String2TType(string typeText) @@ -11,8 +13,6 @@ namespace Tools.ExcelResolver.Editor return string.Equals(typeText, "bool", StringComparison.OrdinalIgnoreCase); } - internal override Type RealType => typeof(bool); - internal override object TryParseFrom(string cellText) { if (bool.TryParse(cellText, out var result)) diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TFloat.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TFloat.cs index 315e7c6..e1ce7c7 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TFloat.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TFloat.cs @@ -5,6 +5,7 @@ namespace Tools.ExcelResolver.Editor internal class TFloat : TType { internal override string FieldWriteFormat => "System.Single"; + internal override object DefaultValue => 0.0f; internal override bool String2TType(string typeText) { diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TInt.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TInt.cs index a18d66b..aee0ca3 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TInt.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TInt.cs @@ -5,6 +5,7 @@ namespace Tools.ExcelResolver.Editor internal class TInt : TType { internal override string FieldWriteFormat => "System.Int32"; + internal override object DefaultValue => 0; internal override bool String2TType(string typeText) { 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 0dee360..18f3c74 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TList.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TList.cs @@ -6,7 +6,8 @@ namespace Tools.ExcelResolver.Editor internal class TList : TType { internal override string FieldWriteFormat => "List"; - + internal override object DefaultValue => new List(); + internal override bool String2TType(string typeText) { var split = typeText.Split('|'); @@ -26,6 +27,24 @@ namespace Tools.ExcelResolver.Editor internal override Type RealType => typeof(List); internal override object TryParseFrom(string cellText) { + var split = cellText.Split('|'); + if (split.Length > 0) + { + var list = new List(); + foreach (var s in split) + { + if (int.TryParse(s, out var result)) + { + list.Add(result); + } + else + { + return null; + } + } + + return list; + } return null; } } diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TString.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TString.cs index 671d717..6596aa9 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TString.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TString.cs @@ -5,6 +5,7 @@ namespace Tools.ExcelResolver.Editor internal class TString : TType { internal override string FieldWriteFormat => "System.string"; + internal override object DefaultValue => string.Empty; internal override bool String2TType(string typeText) { diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TType.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TType.cs index 00c0668..a3dbb3b 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TType.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TType.cs @@ -4,11 +4,13 @@ namespace Tools.ExcelResolver.Editor { internal abstract class TType { + internal abstract Type RealType { get; } + + internal abstract object DefaultValue { get; } + internal abstract string FieldWriteFormat { get; } internal abstract bool String2TType(string typeText); - - internal abstract Type RealType { get; } internal abstract object TryParseFrom(string cellText); } diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector2.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector2.cs index 758f139..d7301c3 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector2.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector2.cs @@ -6,6 +6,7 @@ namespace Tools.ExcelResolver.Editor internal class TVector2 : TType { internal override string FieldWriteFormat => "Vector2"; + internal override object DefaultValue => Vector2.zero; internal override bool String2TType(string typeText) { diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector3.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector3.cs index d969091..db4c77c 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector3.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Types/TVector3.cs @@ -6,6 +6,7 @@ namespace Tools.ExcelResolver.Editor internal class TVector3 : TType { internal override string FieldWriteFormat => "Vector3"; + internal override object DefaultValue => Vector3.zero; internal override bool String2TType(string typeText) { diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Cell.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Cell.cs index 186de11..fca0594 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Cell.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/Core/Util/ExcelResolverUtil.Cell.cs @@ -49,13 +49,22 @@ namespace Tools.ExcelResolver.Editor internal static object ConvertCellValue(ExcelRange cell, T type, string className) where T : TType { - var result = type.TryParseFrom(cell.Text); + object result; + if (string.IsNullOrEmpty(cell.Text)) // 如果单元格为空,则返回默认值 + { + result = type.DefaultValue; + } + else + { + result = type.TryParseFrom(cell.Text); + } + if (result != null) { return result; } - throw new Exception($"单元格转换失败 FullAddress: {cell.FullAddress} Text: {cell.Text} className: {className}"); + throw new Exception($"单元格转换失败 className: '{className}' FullAddress: {cell.FullAddress} Text: '{cell.Text}'"); } /// diff --git a/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteSOData.cs b/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteSOData.cs index 44076cb..2b2547a 100644 --- a/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteSOData.cs +++ b/Assets/Unity-Tools/Core/ExcelResolver/Editor/ExcelResolverEditorWindow.WriteSOData.cs @@ -60,8 +60,6 @@ namespace Tools.ExcelResolver.Editor var fieldData = pair.Value; var cell = worksheet.Cells[row, col]; - if (string.IsNullOrEmpty(cell.Text)) continue; - object convertedValue = ExcelResolverUtil.ConvertCellValue(cell, fieldData.type, classCodeData.className); FieldInfo fieldInfo = soType.GetField(fieldData.varName); if (fieldInfo == null) throw new Exception($"目标类中不存在字段:{fieldData.varName}");