我的世界开发日志1——什么是Mesh

Mesh是Unity内的一个组件,称为网格组件。

·       Mesh 网格

·       MeshFilter 网格过滤器

·       Mesh Renderer 网格渲染器

· Mesh Collider 网格碰撞器

Mesh:是指模型的网格,建模就是建网格。细看Mesh,可以知道Mesh的主要属性内容包括顶点坐标法线纹理坐标三角形绘制序列等其他有用属性和功能。因此建网格,就是画三角形;画三角形就是定位三个点。

MeshFilter:内包含一个Mesh组件,可以根据MeshFilter获得模型网格的组件,也可以为MeshFilter设置Mesh内容。

MeshRender:是用于把网格渲染出来的组件。MeshFilter的作用就是把Mesh扔给MeshRender将模型或者说是几何体绘制显示出来。

 MeshCollider:网格碰撞器利用一个网格资源并在其上构建碰撞器。对于复杂网状模型上的碰撞检测,它要比应用原型碰撞器精确的多。标记为凸起的(Convex )的网格碰撞器才能够和其他网格碰撞器发生碰撞。

它们之间的关系大概就是Unity中的对象就是GameObject,每个GameObject都可以有一个MeshFilter组件(也可以没有),该组件又有Mesh属性(这个一定有),而该属性又有顶点坐标,法线等属性。而如果GameObject里有MeshFilter,则必须要Mesh Renderer才能将此网格渲染出来,不然是看不见该网格的。

示例:

1.创建一个GameObject并添加MeshFilter以及MeshRender组件,并创建一个“CreateMesh.cs”脚本给它。

2.获取该对象的filter组件,并创建一个mesh给它。

3.为该mesh设置属性,这里先设置顶点,然后将三角形与顶点绑定

 1using UnityEngine;

 2using System.Collections;

 3

 4public class CreateMesh : MonoBehaviour {

 5

 6    privateMeshFilter filter;

 7    private Meshmesh;

 8

 9    // Use this for initialization

10    void Start () {

11        //获取GameObject的Filter组件

12        filter = GetComponent<MeshFilter>();

13        //并新建一个mesh给它

14        mesh =new Mesh();

15        filter.mesh = mesh;

16

17         //初始化网格

18        InitMesh();

19     }

20    

21    // Update is called once per frame

22    void Update () {

23    

24     }

25

26    /// <summary>

27    /// Inits the mesh.

28    /// </summary>

29    void InitMesh()

30     {

31        mesh.name ="MyMesh";

32

33        //为网格创建顶点数组

34        Vector3[] vertices =new Vector3[4]{

35            new Vector3(1,1, 0),

36            new Vector3(-1,1, 0),

37            new Vector3(1, -1,0),

38            new Vector3(-1, -1,0)

39         };

40

41        mesh.vertices = vertices;

42

43        //通过顶点为网格创建三角形

44        int[] triangles =new int[2 *3]{

45            0,3, 1,   0,2, 3

46        };

47

48        mesh.triangles = triangles;

49     }

50 }


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值