- 最后登录
- 2019-12-2
- 注册时间
- 2012-8-25
- 阅读权限
- 90
- 积分
- 34660
  
- 纳金币
- 38268
- 精华
- 111
|
实现之前先介绍2个基本概念:VertexBuffer和IndexBuffer1)VertexBuffer 叫顶点缓存区,用来保存顶点信息哒;
2)IndexBuffer 叫索引缓存区,用来保存顶点对应的索引值哒;
思路:如何绘制三角形呢?
1)一个三角形有3个顶点吧,建立3个顶点数据缓存vector3类型数组里;
2)缓存这个三角形顶点的索引信息在int型数组;
3)new 一个空的mesh 或者 通过组建拿到MeshFilter对象里的mesh,把之前准备绘制三角形的基本数据顶点信息,索引信息等数据指向mesh里面相应属性。
ps:可以设置颜色,设置3个顶点的颜色,在update通过Graphics的DrawMesh方法显示颜色等信息。
创建MeshDrawTriangle.cs- Mesh m_Mesh;
- Material m_Material;
- //MeshFilter m_Filter;
- void Awake(){
- //m_Filter = gameObject.AddComponent<MeshFilter> ();
- //m_Mesh = m_Filter.mesh;
- m_Material = new Material(Shader.Find ("GUI/Text Shader"));
- }
- void Start () {
-
- Vector3[] m_Vertexs = new Vector3[]{
- new Vector3(0,0,0),
- new Vector3(1,1,0),
- new Vector3(-1,1,0)
- };
- int[] m_Tris = new int[]{0,1,2};
- Color[] m_Colors = new Color[]{Color.green,Color.green,Color.green};
- m_Mesh = new Mesh ();
- m_Mesh.vertices = m_Vertexs;
- m_Mesh.triangles = m_Tris;
- m_Mesh.colors = m_Colors;
- //m_Filter.mesh = m_Mesh;
- }
-
- // Update is called once per frame
- void Update () {
- Graphics.DrawMesh (m_Mesh,Vector3.zero,Quaternion.identity,m_Material,0);
- }
复制代码 最后把cs文件挂相机或空GameObject运行即可。
|
|