using UnityEngine;
|
using System.IO;
|
|
namespace H2Engine
|
{
|
public class Bhv_TransferPoint : MonoBehaviour
|
{
|
[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
|
|
[HideInInspector]
|
public CapsuleCollider capsuleCollider;
|
|
public GameObject Effect;
|
|
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));
|
bw.Write((float)System.Math.Round(capsuleCollider.radius, 2));
|
}
|
|
public void SaveJson(System.Text.StringBuilder stringBuilder)
|
{
|
stringBuilder.Append("{");
|
stringBuilder.Append("\"effectID\":").Append(effectID).Append(",");
|
stringBuilder.Append("\"stateNameFront\":\"").Append(stateNameFront).Append("\",");
|
stringBuilder.Append("\"flyTimeFront\":").Append(flyTimeFront).Append(",");
|
stringBuilder.Append("\"stateNameBack\":\"").Append(stateNameBack).Append("\",");
|
stringBuilder.Append("\"flyTimeBack\":").Append(flyTimeBack).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)).Append(",");
|
stringBuilder.Append("\"r\":").Append((float)System.Math.Round(capsuleCollider.radius, 2));
|
stringBuilder.Append("}");
|
}
|
|
public void LoadJson(LitJson.JsonData json)
|
{
|
effectID = (int)json["effectID"];
|
stateNameFront = json["stateNameFront"].ToString();
|
flyTimeFront = (int)json["flyTimeFront"];
|
stateNameBack = json["stateNameBack"].ToString();
|
flyTimeBack = (int)json["flyTimeBack"];
|
float _pX = Bhv_MapData.GetJsonFloat(json["px"]);
|
float _pY = Bhv_MapData.GetJsonFloat(json["py"]);
|
float _pZ = Bhv_MapData.GetJsonFloat(json["pz"]);
|
transform.position = new Vector3(_pX, _pY, _pZ);
|
float _r = Bhv_MapData.GetJsonFloat(json["r"]);
|
capsuleCollider.radius = _r;
|
if (EffectConfig.Has(effectID))
|
{
|
var _prefab = InstanceResourcesLoader.LoadEffect(effectID);
|
Effect = Instantiate(_prefab);
|
Effect.transform.SetParent(transform);
|
Effect.transform.localPosition = Vector3.zero;
|
Effect.transform.localScale = Vector3.one;
|
Effect.transform.rotation = Quaternion.identity;
|
}
|
}
|
|
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();
|
transform.position = new Vector3(_x, _y, _z);
|
float _r = br.ReadSingle();
|
capsuleCollider.radius = _r;
|
if (EffectConfig.Has(effectID))
|
{
|
var _prefab = InstanceResourcesLoader.LoadEffect(effectID);
|
Effect = Instantiate(_prefab);
|
Effect.transform.SetParent(transform);
|
Effect.transform.localPosition = Vector3.zero;
|
Effect.transform.localScale = Vector3.one;
|
Effect.transform.rotation = Quaternion.identity;
|
}
|
}
|
|
public void Export(BinaryWriter bw)
|
{
|
Save(bw);
|
}
|
|
#endif
|
}
|
}
|