Unity基础篇-Mesh详解二

上篇文章已经讲解了一些Mesh基础,这次我将结合代码去更深层次的了解Mesh,我想利用Mesh创建Cube。

解题思路:

1.生成Mesh在unity中需要哪些组件

答:MeshFilter、MeshRenderer

2.Cube是由几个顶点组成的?

答:8个顶点

3.Cube是由多少个三角面组成的?

答:一个面包含2个三角面,6个面就是12个三角面

代码部分:

[RequireComponent(requiredComponent: typeof(MeshFilter), requiredComponent2: typeof(MeshRenderer))]
public class CaneratMesh : MonoBehaviour
{
    // 设置mesh属性
    void Start()
    {
        Mesh mesh = new Mesh();
        MeshFilter filter = GetComponent<MeshFilter>();
        filter.mesh = mesh;
        mesh.name = "mesh_01";
        mesh.vertices = GetVectors();
        mesh.triangles = GetTriangles();
    }
    /// <summary>
    /// 顶点信息 
    /// </summary>
    /// <returns></returns>
    private Vector3[] GetVectors()
    {
        return new Vector3[]
        {

            new Vector3(0,0,0),
            new Vector3(0,1,0),
            new Vector3(1,1,0),
            new Vector3(1,0,0),
            new Vector3(1,0,1),
            new Vector3(1,1,1),
            new Vector3(0,1,1),
            new Vector3(0,0,1)

            };
    }
    /// <summary>
    /// 三角序列 三个点组成的三角面序列
    /// </summary>
    /// <returns></returns>
    private int[] GetTriangles()
    {
        return new int[]
         {
             0,1,2,
             0,2,3,

             3,2,5,
             3,5,4,

             4,5,6,
             4,6,7,

             7,6,1,
             7,1,0,

             2,1,6,
             2,6,5,

             7,0,3,
             7,3,4,


         };
    }


    }
}

注意你的顶点坐标排序和你三角面顺序要一致,这关系到cube生成渲染显示的正反面,如果有不清楚可以看我上一篇博客。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芊泽散人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值