概要
using System.Linq; using System.Text; using UnityEngine; public class Example : MonoBehaviour { private void Awake() { var list = Resources .FindObjectsOfTypeAll<Material>() .Where( c => ( c.hideFlags & HideFlags.NotEditable ) == 0 ) .Where( c => ( c.hideFlags & HideFlags.HideAndDontSave ) == 0 ) .ToArray() ; var sb = new StringBuilder(); foreach( var n in list ) { sb.AppendLine( n.name ); } Debug.Log( sb.ToString() ); } }
Resources.FindObjectsOfTypeAll を使用することで
実機で読み込まれているマテリアルの一覧を取得できます
Unity が内部で使用しているマテリアルがリストに含まれないようにするために
hideFlags もチェックしています
Unity エディタではエディタが読み込んでいるマテリアルも
一覧に含まれてしまうため、あくまで実機専用の機能となります
参考サイト様