首页 > 其他分享 >【Unity】mesh绘制简单图形

【Unity】mesh绘制简单图形

时间:2024-10-15 09:32:21浏览次数:8  
标签:Vector2 uv vertices Unity mesh new 绘制 triangles

应用

使用mesh绘制一个彩虹色三角形、四边形、多四边形瓦片

控制mesh移动,实现游戏的对象的身体关节的动作

步骤

mesh(网格类)

Mesh mesh = new Mesh();
  • vertices:顶点数组,包括mesh中的所有顶点,如三角形三个顶点

    //三角形三个顶点
    Vector3[] vertices = new Vector3[3];
    vertices[0] = new Vector3(0,0);
    vertices[1] = new Vector3(0,100);
    vertices[2] = new Vector3(100,100);
    
    //四边形4个顶点
    Vector3[] vertices = new Vector3[4];
    vertices[0] = new Vector3(0, 0);
    vertices[1] = new Vector3(0, 100);
    vertices[2] = new Vector3(100, 100);
    vertices[3] = new Vector3(100, 0);
    
  • triangles:三角形数组,如何构建每个三角形和三角形的个数

    //顺时针的一个三角形
    int[] triangles = new int[3];
    triangles[0] = 0;
    triangles[1] = 1;
    triangles[2] = 2;
    //  1 ——- 2 
    //  |    /
    //  0  /
    
    //两个顺时针三角形
    int[] triangles = new int[3*2];
    triangles[0] = 0;
    triangles[1] = 1;
    triangles[2] = 2;
    
    triangles[3] = 0;
    triangles[4] = 2;
    triangles[5] = 3;
    //  1 ——- 2 
    //  |    /
    //  0  /
    
    //  1 ——- 2 
    //  |   / |
    //  0 / — 3
    
  • uv:uv数组,确定每个顶点的uv坐标

    每个uv包含一个纹理位置,将纹理位置和顶点位置匹配

    //三角形
    Vector2[] uv = new Vector2[3];
    uv[0] = new Vector2(0,0);
    uv[1] = new Vector2(0,1);
    uv[2] = new Vector2(1,1);
    
    //四边形
    Vector2[] uv = new Vector2[4];
    uv[0] = new Vector2(0, 0);
    uv[1] = new Vector2(0, 1);
    uv[2] = new Vector2(1, 1);
    uv[3] = new Vector2(1, 0);
    
    mesh.vertices = vertices;
    mesh.uv = uv;
    mesh.triangles = triangles;
    

mesh Filter

Mesh Filter是用了一个从资源里取到的mesh资源,然后通过Mesh Render,渲染到屏幕中

GetComponent<MeshFilter>().mesh = mesh;

mesh Render(将网格信息渲染出来)

  • 需要材料

标签:Vector2,uv,vertices,Unity,mesh,new,绘制,triangles
From: https://www.cnblogs.com/sitarblogs/p/18466782

相关文章

  • python画图|三维动态柱状图绘制
    【1】引言前序已经学习了二维动态柱状图绘制教程,本次尝试探索三维动态柱状图绘制教程:【2】项目设计三维和二维的不同,要在一开始就定义。二维的定义简单粗暴,只需要一行代码:fig,ax=plt.subplots()#定义要画图到了三维则需要两行,一行说要画三维图,一行说这个图使用哪......
  • 【XYFrame unity框架使用文档】封装unity小框架工具集 —— XYFrame
    文章目录XYFrame介绍优点获取框架源码引入的第三方插件作者信息技术交流群反馈企鹅裙画饼使用文档导入文件目录启动1、单例模式不继承MonoBehaviour的单例模式基类继承MonoBehaviour的单例模式基类2、Mono管理器3、事件管理系统4、工具类封装unity协程工具,避免GC(垃圾回......
  • 【Unity塔防游戏素材包】Tower Defense Pack - Low Poly 3D Art
    TowerDefensePack-LowPoly3DArt是一个专为塔防类游戏设计的Unity插件,提供丰富的低多边形3D资源,涵盖了塔防游戏所需的各种元素,如塔楼、敌人、环境道具等。这些资源风格统一,兼具简约和精致,非常适合开发具有卡通风格、低多边形风格的塔防游戏。主要功能:多样化的塔......
  • 【Unity寻路插件】A Pathfinding Project Pro
    A*PathfindingProjectPro是一款功能强大且高度优化的路径寻路插件,专为Unity开发者打造。它基于A*算法,广泛应用于游戏AI和实时策略游戏的寻路需求,尤其适合需要高效处理复杂路径计算的大型项目。该插件不仅支持常见的二维和三维场景,还提供多种寻路算法、性能优化工具......
  • 一分钟学会MATLAB-数据处理及图形绘制
       MATLAB(矩阵实验室)是一个强大的数学计算软件,广泛用于数据处理、分析和可视化。以下是MATLAB数据处理和图形绘制功能的详细介绍,包括基础代码示例。数据处理功能MATLAB提供了多种数据处理功能,主要包括以下几方面:1.数据输入与输出:2.MATLAB可以从多种格式读取和写......
  • HyperMesh基础教程:概述与有限元分析简介
    1.1HyperMesh概述本节将介绍有限单元法基本原理,HyperMesh软件基本功能及界面介绍,获取在线帮助等内容。 1.1.1有限元分析方法简介有限单元法(FEM)是一种可以精确预测复杂结构在外界载荷作用下响应的方法,该数值方法起源于上世纪50年代。在有限单元法出现之前,验证设计方案或......
  • Unity
    函数生命周期点击查看代码Awake->OnEnable->Start->FixedUpdate->Update->LateUpdate->OnDisable->Ondestory;*Awake:场景开始的时候调用一次。*OnEnable:启用对象后调用,可以重复调用。*Start:对象第一次启用是调用,用于初始化。*FixedUpdate:用于更新物理逻辑,频率超......
  • CSS绘制三角形
    其实画三角形只要打开思路就会很简单这是隐藏内容这是隐藏内容这是隐藏内容这是隐藏内容这是隐藏内容这是隐藏内容目录边框常识这是隐藏内容这是隐藏内容这是隐藏内容这是隐藏内容这是隐藏内容边框操作这是隐藏内容这是隐藏内容这是隐藏内容这是隐藏内容这是隐藏内容......
  • 【Unity】GL绘制图形和网格
    新建GLSquare脚本,绑定主相机。HelperpublicclassGLSquare:MonoBehaviour{ //线材质 privateMaterialm_material; //在摄像机渲染场景后,将调用OnRenderObject。 privatevoidOnRenderObject() { Draw();//调用绘制 } //绘制调用Beginend voidBegi......
  • Qt开发技巧(十六):文本框的光标处理,数据库的int在视图中展示问题,工程文件中区分系统及硬
    继续讲一些Qt开发中的技巧操作:1.文本框的光标处理正常情况下我们在文本框中输入,光标会一直伴随着我们的输入指向最后,有点像链表的next指针,但有时候文本框中的内容过长,而我们想要主动设置下将光标移到最前面的时候,可以用下面方法。//下面三种方法都可以//1.样式表方式设......