Unity高級功能—法線貼圖的製作以及在代碼裏面進行材質上貼圖的切換

製作法線貼圖還是得美術提供你幾張基礎的法線貼圖之後,然後再去製作。

現在我們手裏有兩張貼圖,一張是正常貼圖,一張是法線貼圖;

1、選擇美術提供的基礎的法線貼圖:

Tip:其中Filtering選項有的地方說是應該選擇Sharp,但是我的默認就是Sharp。

2、選項設置完成之後,點擊右下角的“Apply”就會看見貼圖變成這樣:

此時我們的法線法線貼圖就做好了。

 

代碼裏面怎麼改變我們的法線貼圖呢?其實實質就是獲取材質然後更改材質上面的貼圖。

我在場景裏面放置了一個模型,這個模型可以放置兩個材質:

此時Material就是一個Size爲2的數組,我們可以在C#的時候給Material賦值一個Size爲2的數組。

using System.Collections;  
using System.Collections.Generic;  
using UnityEngine;  
  
public class ChangeMaterial : MonoBehaviour  
{  
  // 定義兩個公共的變量,這樣就可以在Unity裏面將製作好的兩個材質拖過來賦值
    public Material diffusemap;  
    public Material normalmap;  
  
private bool isnormal = false;  
// 用來獲取模型的meshrenderer組件
    private MeshRenderer meshrender;  
    // Start is called before the first frame update  
    void Start()  
{  
  // 獲取模型的meshrenderer組件
        this.meshrender = this.GetComponent<MeshRenderer>();  
   // 將拖過來的兩個材質,組成數組,賦值給meshrenderer組件
        meshrender.materials = new Material[2] { this.diffusemap, this.diffusemap };  
    }  
  
    // Update is called once per frame  
    void Update()  
{  
  // 使用鼠標左鍵來改變當前材質
        if(Input.GetMouseButtonDown(0))  
        {  
            if (isnormal) {  
                meshrender.materials = new Material[2] { this.diffusemap, this.diffusemap };  
            }  
            else {  
                meshrender.materials = new Material[2] { this.normalmap, this.normalmap };  
            }  
  
            isnormal = !isnormal;  
        }  
    }  
}  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章