少年修仙传客户端代码仓库
client_Hale
2019-03-19 a4c93b37eecc88e342a7e1116a5a2f31b96af081
6362 【前端】【2.0】飞跃的功能和跨地图NPC寻路功能 编辑器数据编辑
3个文件已修改
57 ■■■■ 已修改文件
Core/MapEditor/Behavior/Bhv_TransferPoint.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/MapEditor/Behavior/Bhv_Trasfer.cs 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/MapEditor/Data/Transfer/MapTransferPoint.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/MapEditor/Behavior/Bhv_TransferPoint.cs
@@ -7,6 +7,10 @@
    {
        [HideInInspector]
        public int effectID = -1;
        public string stateNameFront = "Fly_500";
        public float flyTimeFront = 2;
        public string stateNameBack = "Fly_500";
        public float flyTimeBack = 2;
#if UNITY_EDITOR
@@ -16,6 +20,10 @@
        public void Save(BinaryWriter bw)
        {
            bw.Write(effectID);
            bw.Write(stateNameFront);
            bw.Write(flyTimeFront);
            bw.Write(stateNameBack);
            bw.Write(flyTimeBack);
            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));
@@ -25,6 +33,10 @@
        public void Load(BinaryReader br)
        {
            effectID = br.ReadInt32();
            stateNameFront = br.ReadString();
            flyTimeFront = br.ReadSingle();
            stateNameBack = br.ReadString();
            flyTimeBack = br.ReadSingle();
            float _x = br.ReadSingle();
            float _y = br.ReadSingle();
            float _z = br.ReadSingle();
Core/MapEditor/Behavior/Bhv_Trasfer.cs
@@ -116,11 +116,35 @@
                            pointList.RemoveAt(i);
                            continue;
                        }
                        EditorGUILayout.BeginHorizontal(guiSkin.box, GUILayout.Height(22));
                        EditorGUILayout.LabelField("[" + (i + 1) + "]", guiSkin.customStyles[0], GUILayout.Height(20), GUILayout.Width(40));
                        EditorGUILayout.LabelField("特效ID", guiSkin.customStyles[0], GUILayout.Height(20), GUILayout.Width(40));
                        EditorGUILayout.BeginVertical(guiSkin.box);
                        EditorGUILayout.BeginHorizontal(GUILayout.Height(22));
                        EditorGUILayout.LabelField("[" + (i + 1) + "]", guiSkin.customStyles[0], GUILayout.Height(20), GUILayout.Width(25));
                        EditorGUILayout.LabelField("特效", guiSkin.customStyles[0], GUILayout.Height(20), GUILayout.Width(25));
                        pointList[i].effectID = EditorGUILayout.IntField(pointList[i].effectID, guiSkin.textField, GUILayout.Height(20));
                        if (GUILayout.Button("定高", guiSkin.button, GUILayout.Width(60), GUILayout.Height(20)))
                        EditorGUILayout.EndHorizontal();
                        if (i - 1 >= 0)
                        {
                            EditorGUILayout.BeginHorizontal(GUILayout.Height(22));
                            EditorGUILayout.LabelField("到上一个节点的动作", guiSkin.customStyles[0], GUILayout.Height(20), GUILayout.Width(120));
                            pointList[i].stateNameFront = EditorGUILayout.TextField(pointList[i].stateNameFront, guiSkin.textField, GUILayout.Height(20));
                            EditorGUILayout.LabelField("时间", guiSkin.customStyles[0], GUILayout.Height(20), GUILayout.Width(25));
                            pointList[i].flyTimeFront = EditorGUILayout.FloatField(pointList[i].flyTimeFront, guiSkin.textField, GUILayout.Height(20));
                            EditorGUILayout.EndHorizontal();
                        }
                        if (i + 1 < pointList.Count)
                        {
                            EditorGUILayout.BeginHorizontal(GUILayout.Height(22));
                            EditorGUILayout.LabelField("到下一个节点的动作", guiSkin.customStyles[0], GUILayout.Height(20), GUILayout.Width(120));
                            pointList[i].stateNameBack = EditorGUILayout.TextField(pointList[i].stateNameBack, guiSkin.textField, GUILayout.Height(20));
                            EditorGUILayout.LabelField("时间", guiSkin.customStyles[0], GUILayout.Height(20), GUILayout.Width(25));
                            pointList[i].flyTimeBack = EditorGUILayout.FloatField(pointList[i].flyTimeBack, guiSkin.textField, GUILayout.Height(20));
                            EditorGUILayout.EndHorizontal();
                        }
                        EditorGUILayout.BeginHorizontal(GUILayout.Height(22));
                        if (GUILayout.Button("定高", guiSkin.button, GUILayout.Height(20)))
                        {
                            Vector3 _pos = pointList[i].transform.position;
                            _pos.y = 0;
@@ -132,7 +156,7 @@
                                pointList[i].transform.position = _hit.point;
                            }
                        }
                        if (GUILayout.Button("查找", guiSkin.button, GUILayout.Width(60), GUILayout.Height(20)))
                        if (GUILayout.Button("查找", guiSkin.button, GUILayout.Height(20)))
                        {
                            Selection.activeGameObject = pointList[i].gameObject;
                            if (Selection.activeGameObject)
@@ -140,12 +164,13 @@
                                SceneView.lastActiveSceneView.LookAt(Selection.activeGameObject.transform.position);
                            }
                        }
                        if (GUILayout.Button("删除", guiSkin.button, GUILayout.Width(60), GUILayout.Height(20)))
                        if (GUILayout.Button("删除", guiSkin.button, GUILayout.Height(20)))
                        {
                            DestroyImmediate(pointList[i].gameObject);
                            pointList.RemoveAt(i);
                        }
                        EditorGUILayout.EndHorizontal();
                        EditorGUILayout.EndVertical();
                    }
                }
                EditorGUILayout.EndVertical();
Core/MapEditor/Data/Transfer/MapTransferPoint.cs
@@ -7,12 +7,20 @@
    public class MapTransferPoint
    {
        public int effectID;
        public string stateNameFront;
        public float flyTimeFront;
        public string stateNameBack;
        public float flyTimeBack;
        public float radius;
        public Vector3 position;
        public void Load(BinaryReader br)
        {
            effectID = br.ReadInt32();
            stateNameFront = br.ReadString();
            flyTimeFront = br.ReadSingle();
            stateNameBack = br.ReadString();
            flyTimeBack = br.ReadSingle();
            float _x = br.ReadSingle();
            float _y = br.ReadSingle();
            float _z = br.ReadSingle();