2/04/2014

COOKBOOK - THAY ĐỔI VẬT LIỆU CHO VẬT THỂ BẰNG GUI



  - Thay đổi vật liệu cho vật thể  bằng GUI -

Tùy biến ảnh giao đại diện thường dùng một hoặc nhiều ảnh/vật liệu mẫu đã có và gắn nó vào ảnh đại diện. Bài viết này, sẽ sử dụng GUI để kết hợp 2 vật liệu (texture) để tạo nên ảnh đại diện do người dùng lựa chọn.



 Chuẩn bị
SelectTexture.unitypackage

Cách để làm

B1. Nhấp phải vào thẻ Project và chọn Import Package | Custom Package và mở file SelectTexture vừa tải ở trên.


B2. Tại thẻ Project, double click vào selTexScene.


B3. Vẫn tại thẻ Project, nhấp nút Create | Material và đặt tên là selectableMaterial. Ở thẻ Inspector, đổi Shader thành Decal.


B4. Kéo thả material vừa tạo ở thẻ Project vào Avatar ở thẻ Hierarchy.


B5. Tại thẻ Project, nhấp chọn nút Create | C# Script và đặt tên là SelectTexture. Chèn đoạn code sau vào:

using UnityEngine;
using System.Collections;

public class SelectTexture : MonoBehaviour
{
    public Texture2D[] faces;
    public Texture2D[] props;
   
    void OnGUI()    {
        for (int i = 0; i < faces.Length; i++)
            if (GUI.Button(new Rect(0, i * 64, 128, 64), faces[i])) ChangeMaterial("faces", i);
       
        for (int j = 0; j < props.Length; j++)
            if (GUI.Button(new Rect(128, j * 64, 128, 64), props[j])) ChangeMaterial("props", j);
    }
    void ChangeMaterial(string category, int index)
    {
        if (category == "faces")
            renderer.material.mainTexture = faces[index];
       
        if (category == "props")
            renderer.material.SetTexture("_DecalTex", props[index]);
    }
}


B6. Lưu đoạn code lại và kéo thả vào Avatar ở thẻ Hierarchy.


B7. Nhấp chọn Avatar, qua thẻ Inspector, đổi giá trị Size của Faces và Props thành 2 và kéo thả các file ảnh face1, face2, prop1, prop2 ở thẻ Project vào thẻ Inspetor ở các vị trí như sau:

 

B8. Ấn nút Play để kiểm tra thành quả.

No comments:

Post a Comment