您的位置:首页 > 移动开发 > Unity3D

Unity3d之利用Mesh绘制几何图形实现

2016-05-13 11:03 519 查看
一、创建一个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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: