

This is most commonly used for GameObjects which are created by a script and are purely under the script's control.

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { // Creates a Material that is explicitly created &amp; 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; }
