Version: 2022.1
public Material parent ;

描述

Parent of this material.

Materials with a non null parent are referred to as material variants.

Material variants will inherit all their properties from their parent, and can override them on a per property basis. Changing the value of a property of a material will therefore impact all variants below in the hierarchy.

This property is only available in the Editor, in a built project all material hierarchies are flattened.

See Also: Material.IsChildOf, Material.IsPropertyOverriden, Material.IsPropertyLocked.

using UnityEngine;
using UnityEditor;

public class Example : MonoBehaviour { #if UNITY_EDITOR [MenuItem("GameObject/Create Material Variant")] static void DuplicateMaterial() { Material selected = Selection.activeObject as Material; if (selected == null) return;

// Create a material variant from selected material // And override it's color to red Material material = new Material(selected); material.parent = selected; material.color = Color.red;

AssetDatabase.CreateAsset(material, "Assets/" + selected.name + " Variant.mat"); } #endif }