少年修仙传客户端代码仓库
hch
2025-06-12 204ef05a831c9484e2abc561d27ecbff7c797453
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
using UnityEngine;
using System.IO;
 
namespace H2Engine
{
    public class Bhv_MonsterData : MonoBehaviour
    {
        [HideInInspector]
        public uint npcID;
        [HideInInspector]
        public string resName;
        [HideInInspector]
        public byte ai;
        [HideInInspector]
        public int faceDir;
 
#if UNITY_EDITOR
 
        public void Save(BinaryWriter bw)
        {
            bw.Write(resName);
            bw.Write(npcID);
            bw.Write(ai);
            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));
        }
 
        public void SaveJson(System.Text.StringBuilder stringBuilder)
        {
            stringBuilder.Append("{");
            stringBuilder.Append("\"resName\":\"").Append(resName).Append("\",");
            stringBuilder.Append("\"npcID\":").Append(npcID).Append(",");
            stringBuilder.Append("\"ai\":").Append(npcID).Append(",");
            stringBuilder.Append("\"faceDir\":").Append(faceDir).Append(",");
            stringBuilder.Append("\"px\":").Append((float)System.Math.Round(transform.position.x, 2)).Append(",");
            stringBuilder.Append("\"py\":").Append((float)System.Math.Round(transform.position.y, 2)).Append(",");
            stringBuilder.Append("\"pz\":").Append((float)System.Math.Round(transform.position.z, 2));
            stringBuilder.Append("}");
        }
 
        public void LoadJson(LitJson.JsonData jsonData)
        {
            resName = jsonData["resName"].ToString();
            npcID = (uint)(int)jsonData["npcID"];
            ai = (byte)jsonData["ai"];
            faceDir = (int)jsonData["faceDir"];
            float _pX = Bhv_MapData.GetJsonFloat(jsonData["px"]);
            float _pY = Bhv_MapData.GetJsonFloat(jsonData["py"]);
            float _pZ = Bhv_MapData.GetJsonFloat(jsonData["pz"]);
            transform.position = new Vector3(_pX, _pY, _pZ);
            name = "RefreshMonster_" + npcID;
        }
 
        public void Load(BinaryReader br)
        {
            npcID = br.ReadUInt32();
            ai = br.ReadByte();
            float _x = br.ReadSingle();
            float _y = br.ReadSingle();
            float _z = br.ReadSingle();
            transform.position = new Vector3(_x, _y, _z);
            name = "RefreshMonster_" + npcID;
        }
 
        public void Export(BinaryWriter bw)
        {
            bw.Write(npcID);
            bw.Write(ai);
            bw.Write(faceDir);
            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));
        }
 
#endif
    }
}