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 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
|
}
|
}
|