From 38bbe9af958cac89c56b35ee6c7ba5b2ed44185c Mon Sep 17 00:00:00 2001
From: client_Hale <339726288@qq.com>
Date: 星期一, 21 一月 2019 21:34:33 +0800
Subject: [PATCH] 382 地图编辑器逻辑提交

---
 Core/MapEditor/Behavior/Bhv_SceneObjectData.cs |   61 +++++++++++++++++++++++++++++-
 1 files changed, 59 insertions(+), 2 deletions(-)

diff --git a/Core/MapEditor/Behavior/Bhv_SceneObjectData.cs b/Core/MapEditor/Behavior/Bhv_SceneObjectData.cs
index f097e90..731240b 100644
--- a/Core/MapEditor/Behavior/Bhv_SceneObjectData.cs
+++ b/Core/MapEditor/Behavior/Bhv_SceneObjectData.cs
@@ -1,23 +1,80 @@
 锘縰sing System.IO;
+#if UNITY_EDITOR
+using UnityEditor;
+#endif
 using UnityEngine;
 
 public class Bhv_SceneObjectData : MonoBehaviour
 {
+    [HideInInspector]
     public string resName;
+    public bool isObstacle = false;
+
+#if UNITY_EDITOR
 
     public void Save(BinaryWriter bw)
     {
         bw.Write(resName);
+        bw.Write(isObstacle);
+        bw.Write((float)System.Math.Round(transform.position.x, 2));
+        bw.Write((float)System.Math.Round(transform.position.y, 2));
+        bw.Write((float)System.Math.Round(transform.position.z, 2));
+        bw.Write((float)System.Math.Round(transform.eulerAngles.y, 2));
     }
 
     public void Load(BinaryReader br)
     {
-        resName = br.ReadString();
-        name = "RefreshMonster_" + resName;
+        // 鍔犺浇閫昏緫鍘熷洜鍦ㄧ埗鑺傜偣杩涜璇诲彇
+        // resName = br.ReadString();
+        isObstacle = br.ReadBoolean();
+        float _x = br.ReadSingle();
+        float _y = br.ReadSingle();
+        float _z = br.ReadSingle();
+        float _eurlerAngle = br.ReadSingle();
+
+        name = "RefreshSceneObject_" + resName;
+        transform.position = new Vector3(_x, _y, _z);
+        transform.eulerAngles = new Vector3(0, _eurlerAngle, 0);
     }
 
     public void Export(BinaryWriter bw)
     {
         Save(bw);
     }
+
+    private Bhv_SceneObjectData CreateSceneObject(string sceneName = null)
+    {
+        if (!string.IsNullOrEmpty(sceneName))
+        {
+            string _path = "Assets/ResourcesOut/Mob/Prefab_Race_" + sceneName + ".prefab";
+            var _obj = AssetDatabase.LoadAssetAtPath<GameObject>(_path);
+            if (!_obj)
+            {
+                Debug.LogError("鎵�瑕佸垱寤虹殑璧勬簮涓嶅瓨鍦�: " + _path);
+                return null;
+            }
+            _obj = Instantiate(_obj);
+            var _sceneObjData = _obj.AddComponent<Bhv_SceneObjectData>();
+            _sceneObjData.resName = sceneName;
+            RaycastHit _hit;
+            Ray _ray = SceneView.lastActiveSceneView.camera.ViewportPointToRay(new Vector3(.5f, .5f, 0));
+            if (Physics.Raycast(_ray, out _hit, 1000f, LayerUtility.WalkbleMask))
+            {
+                _sceneObjData.transform.position = _hit.point;
+            }
+            _sceneObjData.transform.SetParent(transform);
+            _sceneObjData.transform.eulerAngles = Vector3.zero;
+            _sceneObjData.transform.localScale = Vector3.one;
+
+            Selection.activeGameObject = _sceneObjData.gameObject;
+            if (Selection.activeGameObject)
+            {
+                SceneView.lastActiveSceneView.LookAt(Selection.activeGameObject.transform.position);
+            }
+
+            return _sceneObjData;
+        }
+        return null;
+    }
+#endif
 }

--
Gitblit v1.8.0