Unity3d运行时动态修改材质

void Start () {

		const string MainTexVariableName = "_MainTex";

		var renders = gameObject.GetComponentsInChildren<Renderer>();



		var resMat = Resources.Load<Material>("CharacterThrough");



		foreach (var render in renders)

		{

			var oreginalMaterial = render.sharedMaterial;

			var currentRender = render;



			var newMat = new Material(resMat);



			newMat.SetTexture(MainTexVariableName, oreginalMaterial.GetTexture(MainTexVariableName));



			currentRender.material = newMat;



		} 

	}

  

你可能感兴趣的:(unity3d)