using System.Collections; using System.Collections.Generic; using UnityEngine; using QFramework; using UniRx; using QFramework.MREditor; public class CMaterialValueShow : MonoBehaviour { public CompositeMaterialValue cMValue; public string spoitname; /// /// 当前组合素材内所有单个素材 /// public List listMaterialValue; private ObjectTransform startObjTransform; void Start() { listMaterialValue = new List(); startObjTransform = new ObjectTransform(); startObjTransform.startPos = Vector3.zero; startObjTransform.startRot = Vector3.zero; startObjTransform.startScale = Vector3.one; startObjTransform.nowPos = Vector3.zero; startObjTransform.nowRot = Vector3.zero; startObjTransform.nowScale = Vector3.zero; CreateMaterial(); } /// /// 创建组合素材 /// private void CreateMaterial() { switch ((MaterialType)cMValue.type) { case MaterialType.NULL: break; case MaterialType.Image: case MaterialType.Video: case MaterialType.Model: case MaterialType.Text: case MaterialType.ImageorViedoAndText: case MaterialType.ModelAndText: //UIKit.GetPanel().dicCMVOjbes.Add(cMValue.name, new List()); //UIKit.GetPanel().dicCMVOjbes[cMValue.name].Add(gameObject); cMValue.materialList.ForEach(item => { GameObject obj = new GameObject(item.name); obj.transform.parent = transform; obj.transform.Identity(); // SetObjMaterial(obj, item.ObjectTransform); MaterialShow materialShow = obj.AddComponent(); materialShow.value = item; materialShow.type = cMValue.template; materialShow.spoitName = spoitname; materialShow.updateTime = cMValue.updateTime; listMaterialValue.Add(materialShow); Debug.Log(item.name); UIKit.GetPanel().dicObjs[spoitname].Add(materialShow.gameObject); // UIKit.GetPanel().dicCMVOjbes[cMValue.name].Add(materialShow.gameObject); }); break; default: break; } } /// /// 设置物体的初始位置 /// /// /// public void SetObjMaterial(GameObject obj, ObjectTransform objectData) { Debug.Log(objectData.startScale); if (objectData == null) return; if (objectData.nowScale == Vector3.zero) { obj.transform.localPosition = objectData.startPos; obj.transform.localEulerAngles = objectData.startRot; obj.transform.localScale = objectData.startScale; } else { obj.transform.localPosition = objectData.nowPos; obj.transform.localEulerAngles = objectData.nowRot; obj.transform.localScale = objectData.nowScale; } } }