オブジェクトを「ヒエラルキーに表示しない」「シーンに保存しない」「オブジェクトでアンロードしない」の組み合わせは Resources.UnloadUnusedAssets でアンロードされません。
これは、スクリプトで作成され、スクリプトの制御下にあるオブジェクトにもっとも一般的に使用されます。
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour {
// Creates a material that is explicitly created & destroyed by the component. // Resources.UnloadUnusedAssets will not unload it, and it will not be editable by the inspector. private Material ownedMaterial; void OnEnable() { ownedMaterial = new Material(Shader.Find("Diffuse")); ownedMaterial.hideFlags = HideFlags.HideAndDontSave; GetComponent<Renderer>().sharedMaterial = ownedMaterial; }
// Objects created as hide and don't save must be explicitly destroyed by the owner of the object. void OnDisable() { DestroyImmediate(ownedMaterial); } }