using System.Collections; using System.Collections.Generic; using UnityEngine; public class ClonePowerObj : CloneSingleObj { public override void SetCloneGameObject(GameObject obj) { obj.AddComponent(); //obj.AddComponent(); obj.AddComponent(); obj.AddComponent(); PowerAttribute PowerAttribute = obj.GetComponent(); PowerAttribute.Affiliation = GlobalVariable.TeamName; PowerAttribute.Number = number; PowerAttribute.TypeName = CloneObjName.Instance.GetCloneNameByType(cloneObjType); } public override void AddRecordFrame(List list) { foreach (Transform child in transform) { PowerAttribute PowerAttribute = child.GetComponent(); var data = new PowerRecordObjectBase() { Task = PowerAttribute.Task, Affiliation = PowerAttribute.Affiliation, Number = PowerAttribute.Number, TypeName = PowerAttribute.TypeName, SpecialData = new List() }; var RecordDiverseDatas = GetComponents(); foreach (IRecordDiverseData item in RecordDiverseDatas) { item.RecordDiverseData(data.SpecialData, child.gameObject); } SetBaseData(data, child); string json = JsonUtility.ToJson(data); var objectJson = new ObjectData(); objectJson.cloneObjType = cloneObjType; objectJson.json = json; list.Add(objectJson); } } public override void AddRecordEventClone(Transform obj) { if (RecordEvent.IsRecord()) { var eventData = new EventData { time = RecordManager.Instance.RecordTimer, cloneObjType = cloneObjType, eventType = RecordEventType.Clone }; PowerAttribute PowerAttribute = obj.GetComponent(); var data = new PowerRecordObjectBase() { Task = PowerAttribute.Task, Affiliation = PowerAttribute.Affiliation, Number = PowerAttribute.Number, TypeName = PowerAttribute.TypeName, SpecialData = new List() }; var RecordDiverseDatas = GetComponents(); foreach (IRecordDiverseData item in RecordDiverseDatas) { item.RecordDiverseData(data.SpecialData, obj.gameObject); } SetBaseData(data, obj); string json = JsonUtility.ToJson(data); eventData.json = json; RecordManager.Instance.jsonData.eventDataList.Add(eventData); } } } interface IRecordDiverseData { //KeyValuePair void RecordDiverseData(List SpecialData, GameObject gameObject); } interface IReplayDiverseData { void ReplayDiverseData(List SpecialData, GameObject gameObject); }