上海苏宁宝丽嘉酒店,2020.11.17 15:30改为单机版本,以后合成单机版本可以以此版本为模板
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
3.1 KiB

4 years ago
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ClonePowerObj : CloneSingleObj
{
public override void SetCloneGameObject(GameObject obj)
{
obj.AddComponent<ObjSelectCtrl>();
//obj.AddComponent<ObjDrag>();
obj.AddComponent<ObjDelete>();
obj.AddComponent<ObjRotate>();
PowerAttribute PowerAttribute = obj.GetComponent<PowerAttribute>();
PowerAttribute.Affiliation = GlobalVariable.TeamName;
PowerAttribute.Number = number;
PowerAttribute.TypeName = CloneObjName.Instance.GetCloneNameByType(cloneObjType);
}
public override void AddRecordFrame(List<ObjectData> list)
{
foreach (Transform child in transform)
{
PowerAttribute PowerAttribute = child.GetComponent<PowerAttribute>();
var data = new PowerRecordObjectBase()
{
Task = PowerAttribute.Task,
Affiliation = PowerAttribute.Affiliation,
Number = PowerAttribute.Number,
TypeName = PowerAttribute.TypeName,
SpecialData = new List<KeyValueData>()
};
var RecordDiverseDatas = GetComponents<IRecordDiverseData>();
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<PowerAttribute>();
var data = new PowerRecordObjectBase()
{
Task = PowerAttribute.Task,
Affiliation = PowerAttribute.Affiliation,
Number = PowerAttribute.Number,
TypeName = PowerAttribute.TypeName,
SpecialData = new List<KeyValueData>()
};
var RecordDiverseDatas = GetComponents<IRecordDiverseData>();
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<string, string>
void RecordDiverseData(List<KeyValueData> SpecialData, GameObject gameObject);
}
interface IReplayDiverseData
{
void ReplayDiverseData(List<KeyValueData> SpecialData, GameObject gameObject);
}