From 856f30df5b234db644da314dc457439c4fa33ae4 Mon Sep 17 00:00:00 2001 From: walon Date: Wed, 2 Mar 2022 16:51:07 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E5=A4=8D=E3=80=91=E4=BF=AE?= =?UTF-8?q?=E5=A4=8Dcode=5Fcs=5Funity=5Feditor=5Fjson=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E5=A4=9A=E6=80=81=E6=95=B0=E6=8D=AE=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/cs_unity_editor_json/bean.tpl | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/Luban.Server/Templates/config/cs_unity_editor_json/bean.tpl b/src/Luban.Server/Templates/config/cs_unity_editor_json/bean.tpl index de01e5b..9f5c820 100644 --- a/src/Luban.Server/Templates/config/cs_unity_editor_json/bean.tpl +++ b/src/Luban.Server/Templates/config/cs_unity_editor_json/bean.tpl @@ -6,6 +6,7 @@ using SimpleJSON; name = x.name parent_def_type = x.parent_def_type parent = x.parent + hierarchy_fields = x.hierarchy_fields fields = x.fields }} @@ -28,12 +29,10 @@ public {{x.cs_class_modifier}} partial class {{name}} : {{if parent_def_type}} { {{~end~}} } + {{~if !x.is_abstract_type~}} public override void LoadJson(SimpleJSON.JSONObject _json) { - {{~if parent_def_type ~}} - base.LoadJson(_json); - {{~end~}} - {{~ for field in fields ~}} + {{~ for field in hierarchy_fields ~}} { var _fieldJson = _json["{{field.name}}"]; if (_fieldJson != null) @@ -46,11 +45,11 @@ public {{x.cs_class_modifier}} partial class {{name}} : {{if parent_def_type}} { } public override void SaveJson(SimpleJSON.JSONObject _json) - { - {{~if parent_def_type ~}} - base.SaveJson(_json); + { + {{~if parent~}} + _json["{{x.json_type_name_key}}"] = "{{x.full_name}}"; {{~end~}} - {{~ for field in fields ~}} + {{~ for field in hierarchy_fields ~}} {{~if field.ctype.is_nullable}} if ({{field.convention_name}} != null) { @@ -66,6 +65,7 @@ public {{x.cs_class_modifier}} partial class {{name}} : {{if parent_def_type}} { {{~end~}} {{~end~}} } + {{~end~}} public static {{name}} LoadJson{{name}}(SimpleJSON.JSONNode _json) { @@ -75,7 +75,10 @@ public {{x.cs_class_modifier}} partial class {{name}} : {{if parent_def_type}} { switch (type) { {{~for child in x.hierarchy_not_abstract_children~}} - case "{{cs_impl_data_type child x}}": obj = new {{child.full_name}}(); break; + {{~if child.namespace == x.namespace~}} + case "{{child.full_name}}": + {{~end~}} + case "{{cs_impl_data_type child x}}":obj = new {{child.full_name}}(); break; {{~end~}} default: throw new SerializationException(); }