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