Unity 實現給物體替換材質球
下面先看一下效果圖
using UnityEngine; using System.Collections; public class textMesh : MonoBehaviour { public Material meshRender = null; public Renderer rend; public Texture texture; void Start () { //把名字為bangongshi4 的材質球放到Resources文件夾下 meshRender = Resources.Load("bangongshi4") as Material; if (meshRender == null) { Debug.Log("11111111111"); return; } rend = GetComponent<Renderer>(); //rend.enabled = true; rend.sharedMaterial = meshRender;//代表這個對象的共享材質資源(這個是替換材質球) //MeshRenderer繼承自Renderer所以上面定義成MeshRenderer也可以, //GetComponent<MeshRenderer>().materials[0] = meshRender;//這個表示找到對應的材質但是不能替換材質球, //GetComponent<MeshRenderer>().material.mainTexture = texture;//和上面的一樣,可以替換材質的texture Debug.Log(GetComponent<Renderer>().material); Debug.Log(GetComponent<MeshRenderer>().material.mainTexture); } // Update is called once per frame void Update () { } }
補充:unity同個物體多個材質替換處理
我就廢話不多說瞭,大傢還是直接看代碼吧~
public Material[] MatAry; public Material[] mat; public GameObject obj; MatAry = obj.GetComponent<Renderer>().materials; MatAry = mat; obj.GetComponent<Renderer>().materials = MatAry;
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- None Found