Unity3d之利用Mesh繪製幾何圖形實現
一、創建一個GameObject,並在上面掛兩個組件(MeshFilter、MeshRenderer)
二、新建個腳本,並掛在剛纔創建的GameObject上
using UnityEngine; using System.Collections; public class MeshImage : MonoBehaviour {
void Start() {
MeshRectangle(); }
// 創建一個矩形
void MeshRectangle() {
MeshFilter mFilter = gameObject.GetComponent(); MeshRenderer mRen = gameObject.GetComponent();
//矩形的四個頂點座標
var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);
Vector3[] vertices = new Vector3[4]; vertices[0] = new Vector3(0, 0, 0); vertices[1] = new Vector3(500, 0, 0); vertices[2] = new Vector3(500, 500, 0); vertices[3] = new Vector3(0, 500, 0);
//三角形頂點索引
int[] triangles = new int[6]{0, 1, 2, 2, 3, 0};
//每個頂點的法線
Vector3[] normals = new Vector3[4]; normals[0] = new Vector3(0, 0, -5); normals[1] = new Vector3(0, 0, -5); normals[2] = new Vector3(0, 0, -5); normals[3] = new Vector3(0, 0, -5);
//UV貼圖座標
Vector2[] uvs = new Vector2[4]; uvs[0] = new Vector2(0, 0);
var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);
uvs[1] = new Vector2(1, 0); uvs[2] = new Vector2(1, 1);
uvs[3] = new Vector2(0, 1); //頂點顏
Color32[] colors32 = new Color32[4]; colors32[0] = new Color32(255, 0, 0, 255); colors32[1] = new Color32(255, 0, 0, 255); colors32[2] = new Color32(255, 0, 0, 255); colors32[3] = new Color32(255, 0, 0, 255);
Mesh mesh = new Mesh();
mesh.hideFlags = HideFlags.DontSave; mesh.vertices = vertices; mesh.triangles = triangles; mesh.colors32 = colors32; mesh.uv = uvs;
mesh.normals = normals; mFilter.mesh = mesh;
二、新建個腳本,並掛在剛纔創建的GameObject上
using UnityEngine; using System.Collections; public class MeshImage : MonoBehaviour {
void Start() {
MeshRectangle(); }
// 創建一個矩形
void MeshRectangle() {
MeshFilter mFilter = gameObject.GetComponent(); MeshRenderer mRen = gameObject.GetComponent();
//矩形的四個頂點座標
var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);
Vector3[] vertices = new Vector3[4]; vertices[0] = new Vector3(0, 0, 0); vertices[1] = new Vector3(500, 0, 0); vertices[2] = new Vector3(500, 500, 0); vertices[3] = new Vector3(0, 500, 0);
//三角形頂點索引
int[] triangles = new int[6]{0, 1, 2, 2, 3, 0};
//每個頂點的法線
Vector3[] normals = new Vector3[4]; normals[0] = new Vector3(0, 0, -5); normals[1] = new Vector3(0, 0, -5); normals[2] = new Vector3(0, 0, -5); normals[3] = new Vector3(0, 0, -5);
//UV貼圖座標
Vector2[] uvs = new Vector2[4]; uvs[0] = new Vector2(0, 0);
var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);
uvs[1] = new Vector2(1, 0); uvs[2] = new Vector2(1, 1);
uvs[3] = new Vector2(0, 1); //頂點顏
Color32[] colors32 = new Color32[4]; colors32[0] = new Color32(255, 0, 0, 255); colors32[1] = new Color32(255, 0, 0, 255); colors32[2] = new Color32(255, 0, 0, 255); colors32[3] = new Color32(255, 0, 0, 255);
Mesh mesh = new Mesh();
mesh.hideFlags = HideFlags.DontSave; mesh.vertices = vertices; mesh.triangles = triangles; mesh.colors32 = colors32; mesh.uv = uvs;
mesh.normals = normals; mFilter.mesh = mesh;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.