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.
41 lines
1.1 KiB
41 lines
1.1 KiB
using System.Collections.Generic; |
|
using System.Linq; |
|
using UnityEngine; |
|
|
|
namespace Ui.Utils |
|
{ |
|
[ExecuteInEditMode] |
|
public class Ui3DMesh : MonoBehaviour |
|
{ |
|
[SerializeField] |
|
private List<MeshFilter> meshFilters = new List<MeshFilter>(); |
|
|
|
private void ResetData () |
|
{ |
|
meshFilters.ForEach (delegate (MeshFilter meshFilter) |
|
{ |
|
var cr = meshFilter.transform.GetComponent<CanvasRenderer>(); |
|
cr.SetMesh (meshFilter.sharedMesh); |
|
|
|
var materials = meshFilter.transform.GetComponent<MeshRenderer>().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<MeshFilter>(true).ToList(); |
|
ResetData(); |
|
} |
|
} |
|
} |