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