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;
二、新建个脚本,并挂在刚才创建的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;
相关文章推荐
- Unity3D 【编辑器扩展】一键批量修改预设UGUI Text字体
- Unity3D地形引擎指南
- unity代码创建mesh
- Unity3D研究院之自制批量修改Shader插件(五十七)
- Unity3D【教材Unity3D游戏开发:2.7】
- Unity Shaders and Effects Cookbook (7-3) 在地形中使用顶点颜色做混合
- UnityShader2 CG Pipeline
- Unity3d-Shader-光照模型
- Unity3D射线
- unity 使用GL画线段
- Unity3D 性能优化
- 关于Unity3D打包Android时,Icon模糊的解决方案
- Unity3D协同程序(Coroutine)
- unity 录音, 压缩, 保存, 读取, 实时检测音量
- Unity高像素截图
- Unity高像素截图
- Php中 检查客户端是否来自于Unity
- HoloLens开发手记 - Unity之摄像头篇
- Unity 小案例 加载新场景时数据持久化简单存储
- 编译 unity3d 的示例代码过程