using System.Collections; using System.Collections.Generic; using UnityEngine; public class CloneWaterCannon : CloneSingleObj { public override void Awake() { cloneObjType = CloneObjType.WaterCannon; ResourcesName = "Prefab/Tool/WaterCannon"; base.Awake(); } /// /// 添加初始状态记录 /// /// public override void AddRecordFrame(List list) { foreach (Transform child in transform) { var data = new RecordWaterCannon(); SetWaterCannonData(data, child); string json = JsonUtility.ToJson(data); var objectJson = new ObjectData(); objectJson.cloneObjType = cloneObjType; objectJson.json = json; list.Add(objectJson); } } public void SetWaterCannonData(RecordWaterCannon data, Transform obj) { var msg = obj.GetComponent(); data.gameObjType = msg.gameObjType; data.objectName = obj.gameObject.name; data.hasSupplier = obj.GetComponent().hasSupplier; data.IsAutoSwing = obj.GetComponent().IsAutoSwing; if (obj.GetComponent()) { data.dragable = obj.GetComponent().enabled; } data.buildNum = msg.buildNum; data.floorNum = msg.floorNum; data.interlayerNum = msg.interlayerNum; data.myTransform.setMyPosition(obj.localPosition); data.myTransform.setMyRotation(obj.localRotation); data.myTransform.setMyScale(obj.localScale); data.rotateRotation = obj.Find("Rotate").localEulerAngles; data.headRotation = obj.Find("Rotate/Head").localEulerAngles; data.waterScale = obj.GetComponent().GetWaterScale(); data.isActive = obj.gameObject.activeSelf; if (obj.GetComponent()) { data.IsSelect = obj.GetComponent().selected; } data.task = obj.GetComponent().task; } /// /// 添加记录(克隆) /// public override void AddRecordEventClone(Transform obj) { if (ReplaySetting.PlayStatus == PlayStatus.isEditor && RecordManager.Instance.recordStatus == RecordStatus.normal) { var eventData = new EventData(); eventData.time = RecordManager.Instance.RecordTimer; eventData.cloneObjType = cloneObjType; eventData.eventType = RecordEventType.Clone; var data = new RecordWaterCannon(); SetWaterCannonData(data, obj); string json = JsonUtility.ToJson(data); eventData.json = json; RecordManager.Instance.jsonData.eventDataList.Add(eventData); } } }