using UnityEngine; using UniRx; /// <summary> // 该文件根据 CloneObject.xlsx 由程序自动生成 /// </summary> public class CloneObject { /// <summary> /// ID /// </summary> public string Id { get; set; } /// <summary> /// 位置 /// </summary> public Vector3 Position { get; set; } /// <summary> /// 旋转 /// </summary> public Vector3 Rotation { get; set; } /// <summary> /// 父对象 /// </summary> public string Parent { get; set; } /// <summary> /// 图片地址 /// </summary> public string ImageUrl { get; set; } /// <summary> /// 图片类型 /// </summary> public OriginalImageType ImageType { get; set; } /// <summary> /// 名称 /// </summary> public string Name { get; set; } /// <summary> /// 位置 /// </summary> public string Address { get; set; } /// <summary> /// 详情 /// </summary> public string Discription { get; set; } /// <summary> /// 实例化物体类型 /// </summary> public EquipmentType ObjectType { get; set; } /// <summary> /// 纹理节点数据 /// </summary> public Vector3[] MeshVertices { get; set; } /// <summary> /// 距离1 /// </summary> public float Distance1 { get; set; } /// <summary> /// 距离2 /// </summary> public float Distance2 { get; set; } } public class CloneObjectReactive : ISetData<CloneObject> { protected virtual CloneObject Data { get; set; } = new CloneObject(); /// <summary> /// ID /// </summary> public ReactiveProperty<string> Id { get; private set; } = new ReactiveProperty<string>(); /// <summary> /// 位置 /// </summary> public ReactiveProperty<Vector3> Position { get; private set; } = new ReactiveProperty<Vector3>(); /// <summary> /// 旋转 /// </summary> public ReactiveProperty<Vector3> Rotation { get; private set; } = new ReactiveProperty<Vector3>(); /// <summary> /// 父对象 /// </summary> public ReactiveProperty<string> Parent { get; private set; } = new ReactiveProperty<string>(); /// <summary> /// 图片地址 /// </summary> public ReactiveProperty<string> ImageUrl { get; private set; } = new ReactiveProperty<string>(); /// <summary> /// 图片类型 /// </summary> public ReactiveProperty<OriginalImageType> ImageType { get; private set; } = new ReactiveProperty<OriginalImageType>(); /// <summary> /// 名称 /// </summary> public ReactiveProperty<string> Name { get; private set; } = new ReactiveProperty<string>(); /// <summary> /// 位置 /// </summary> public ReactiveProperty<string> Address { get; private set; } = new ReactiveProperty<string>(); /// <summary> /// 详情 /// </summary> public ReactiveProperty<string> Discription { get; private set; } = new ReactiveProperty<string>(); /// <summary> /// 实例化物体类型 /// </summary> public ReactiveProperty<EquipmentType> ObjectType { get; private set; } = new ReactiveProperty<EquipmentType>(); /// <summary> /// 纹理节点数据 /// </summary> public ReactiveProperty<Vector3[]> MeshVertices { get; private set; } = new ReactiveProperty<Vector3[]>(); /// <summary> /// 距离1 /// </summary> public ReactiveProperty<float> Distance1 { get; private set; } = new ReactiveProperty<float>(); /// <summary> /// 距离2 /// </summary> public ReactiveProperty<float> Distance2 { get; private set; } = new ReactiveProperty<float>(); public CloneObjectReactive() { Id.Subscribe(value => Data.Id = value); Position.Subscribe(value => Data.Position = value); Rotation.Subscribe(value => Data.Rotation = value); Parent.Subscribe(value => Data.Parent = value); ImageUrl.Subscribe(value => Data.ImageUrl = value); ImageType.Subscribe(value => Data.ImageType = value); Name.Subscribe(value => Data.Name = value); Address.Subscribe(value => Data.Address = value); Discription.Subscribe(value => Data.Discription = value); //Color.Subscribe(value => Data.Color = value); //Mesh.Subscribe(value => Data.Mesh = value); ObjectType.Subscribe(value => Data.ObjectType = value); MeshVertices.Subscribe(value => Data.MeshVertices = value); Distance1.Subscribe(value => Data.Distance1 = value); Distance2.Subscribe(value => Data.Distance2 = value); } public void SetData(CloneObject data) { Data = data; Id.Value = data.Id; Position.Value = data.Position; Rotation.Value = data.Rotation; Parent.Value = data.Parent; ImageUrl.Value = data.ImageUrl; ImageType.Value = data.ImageType; Name.Value = data.Name; Address.Value = data.Address; Discription.Value = data.Discription; //Color.Value = data.Color; //Mesh.Value = data.Mesh; ObjectType.Value = data.ObjectType; MeshVertices.Value = data.MeshVertices; Distance1.Value = data.Distance1; Distance2.Value = data.Distance2; } public CloneObject GetData() { return Data; } }