From f46aa42023bfffad6209e7015d45ec334369e2a0 Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期一, 08 四月 2019 21:08:01 +0800
Subject: [PATCH] 382 地图编辑器json存储逻辑
---
Core/MapEditor/Behavior/Bhv_MapData.cs | 77 +++++++++++++++++++++++++++++++++++++-
1 files changed, 75 insertions(+), 2 deletions(-)
diff --git a/Core/MapEditor/Behavior/Bhv_MapData.cs b/Core/MapEditor/Behavior/Bhv_MapData.cs
index 6d12691..b5c70e5 100644
--- a/Core/MapEditor/Behavior/Bhv_MapData.cs
+++ b/Core/MapEditor/Behavior/Bhv_MapData.cs
@@ -90,8 +90,7 @@
triggerList[i].SaveJson(_stringBuilder);
}
}
- _stringBuilder.Append("]");
- _stringBuilder.Append("},");
+ _stringBuilder.Append("],");
_stringBuilder.Append("\"eventList\": [");
if (eventList.Count > 0)
{
@@ -100,6 +99,17 @@
{
_stringBuilder.Append(",");
eventList[i].SaveJson(_stringBuilder);
+ }
+ }
+ _stringBuilder.Append("],");
+ _stringBuilder.Append("\"transferList\": [");
+ if (transferList.Count > 0)
+ {
+ transferList[0].SaveJson(_stringBuilder);
+ for (int i = 1; i < transferList.Count; ++i)
+ {
+ _stringBuilder.Append(",");
+ transferList[i].SaveJson(_stringBuilder);
}
}
_stringBuilder.Append("]");
@@ -131,6 +141,69 @@
}
}
+
+ public void LoadJson(LitJson.JsonData json)
+ {
+ id = (int)json["id"];
+ var _triggerList = json["triggerList"];
+ GameObject _go = null;
+ if (_triggerList.Count > 0)
+ {
+ for (int i = 0; i < _triggerList.Count; ++i)
+ {
+ _go = new GameObject(NodeName_Trigger + i);
+ _go.transform.position = Vector3.zero;
+ _go.transform.eulerAngles = Vector3.zero;
+ _go.transform.localScale = Vector3.one;
+ var _triggerBhv = _go.AddComponent<Bhv_MapTrigger>();
+ _triggerBhv.boxCollider = _go.AddComponent<BoxCollider>();
+ _triggerBhv.transform.SetParent(transform.Find(NodeName_TriggerList));
+ triggerList.Add(_triggerBhv);
+ _triggerBhv.LoadJson(_triggerList[i]);
+ }
+ }
+ var _eventList = json["eventList"];
+ if (_eventList.Count > 0)
+ {
+ for (int i = 0; i < _eventList.Count; ++i)
+ {
+ _go = new GameObject(NodeName_Event + i);
+ _go.transform.position = Vector3.zero;
+ _go.transform.eulerAngles = Vector3.zero;
+ _go.transform.localScale = Vector3.one;
+ var _type = (Evt.E_EventType)(byte)_eventList[i]["type"];//br.ReadByte();
+ if (_type == Evt.E_EventType.Enemy)
+ {
+ var _eventBhv = _go.AddComponent<Bhv_Evt_RefreshMonster>();
+ _eventBhv.type = _type;
+ _eventBhv.transform.SetParent(transform.Find(NodeName_EventList));
+ eventList.Add(_eventBhv);
+ _eventBhv.LoadJson(_eventList[i]);
+ }
+ else if (_type == Evt.E_EventType.SceneObject)
+ {
+ var _eventBhv = _go.AddComponent<Bhv_Evt_RefreshSceneObject>();
+ _eventBhv.type = _type;
+ _eventBhv.transform.SetParent(transform.Find(NodeName_EventList));
+ eventList.Add(_eventBhv);
+ _eventBhv.LoadJson(_eventList[i]);
+ }
+ }
+ }
+ var _transferList = json["transferList"];
+ for (int i = 0; i < _transferList.Count; ++i)
+ {
+ _go = new GameObject(NodeName_Transfer + i);
+ _go.transform.position = Vector3.zero;
+ _go.transform.eulerAngles = Vector3.zero;
+ _go.transform.localScale = Vector3.one;
+ var _transferBhv = _go.AddComponent<Bhv_Trasfer>();
+ _transferBhv.transform.SetParent(transform.Find(NodeName_TransferList));
+ transferList.Add(_transferBhv);
+ _transferBhv.LoadJson(_transferList[i]);
+ }
+ }
+
public void Load(BinaryReader br)
{
id = br.ReadInt32();
--
Gitblit v1.8.0