using System.Collections.Generic; using System.Linq; using UnityEngine; namespace Ui.Utils { [ExecuteInEditMode] public class Ui3DMesh : MonoBehaviour { [SerializeField] private List meshFilters = new List(); private void ResetData () { meshFilters.ForEach (delegate (MeshFilter meshFilter) { var cr = meshFilter.transform.GetComponent(); cr.SetMesh (meshFilter.sharedMesh); var materials = meshFilter.transform.GetComponent().sharedMaterials.ToList(); for (var i = 0; i < materials.Count; i++) { cr.materialCount = materials.Count; cr.SetMaterial (materials[i], i); } }); } private void OnEnable() { ResetData(); } private void OnValidate() { //meshFilters = GetComponentsInChildren(true).ToList(); ResetData(); } } }