Unity3D 游戏引擎之游戏对象的访问绘制线与绘制面详解
一眨眼学习Unity3D 也有一段时间了,基本已经拿下了这套游戏引擎,回过头来想想以前写的RPG 游戏引擎,越来越发现以前写的就是垃圾。人果然是要不断学习与不断进步,好好学习,天天向上。哇咔咔~ 加油!!
最近做一个项目须要去绘制线与绘制面,那么把这两天的学习笔记整理一下,一是给自己留作备忘,二是方便初学者学习。
任何一个无规则曲线它都是有若干个线段组成,及时是圆形它也是又若干个线段组成的,也就是说将若干个线段拼接起来就是我们须要的无规则曲线~那么在3D 的世界中我们须要知道 X Y Z 三个点来确定一条3D线段。
Unity -> GameObject -> Create Empty 创建一个空的对象,我命名为line。然后点击 Component -> Miscellaneous -> Line Renderer 给line添加一个线渲染器的属性,Line Renderer是非常中的属性,下面我会详细的说明。
Create -> Material 创建一个材质,做来这个线段的贴图,下面我们看看Line Renderer的一些重要参数。
Cast Shadows: 是否投射阴影。
Receive Shadows: 是否接收阴影。
Materials :设置材质,这里可以设置多个材质, line就是上面我们创建的材质,这里我给line这个材质涂上了红颜色。
Positions:这个属性就比较重要了,它是专门设置线段在3D 世界中的点的坐标,size 设置点的数量 为3 那么将会有3个点,Element 0 Element 1Element 2 这三个点将确定这条曲线分为两段,第一段是(0,0,1) 到 (0,0,2) ,第二段是 (0,0,2) 到(0,0,4)。
Paramerters
StartWidth :设置起点的宽度
EndWidth: 设置终点的宽度 ,这两项数值默认为1,但是现实起来很宽,所以一般都设置为0.几~
Start Color: 设置起点颜色
Start Color: 设置终点颜色
Use World Space 使用世界坐标系
大家看看效果,清楚的可以看到曲线分为两部分,第一部分较短 第二部分较长。
怎么样? 绘制线的方法不难学吧?在已知线段位置的情况下我们可以使用上面的方法去设置这条线,但是如果线段的位置是在游戏过程中动态的产生就得在代码中去动态的去设置。
创建脚本Main.cs 绑定到摄像头上,运行游戏绘制线的话须要在Main中去拿到line这个对象的实例。这就是一个比较重要的知识点了。
一些重要的方法,在编辑器中编辑的一些东西,在代码中也可以做到。
LineRenderer.SetWidth(0.1,0.1) ; 设置线段起始点与结束点的宽度 (参数1 为起始点 参数2为结束点)
LineRenderer.SetColor(Color.black,Color.white);设置线段起始点与结束点的颜色 (参数1 为起始点颜色 参数2为结束点颜色)
LineRenderer.SetVertexCount(5); 设置线段数量。
LineRenderer.useWorldSpace = true; 是否使用世界坐标系,和上面编辑器对应。
通过上面代码的设置,运行游戏,发现全新的一个三角形曲线赫然的映入我们的眼帘,有了上面的方法我们就可以组合的绘制出各种各样的3D 游戏曲线了,这里MOMO使用的是颜色,大家也可以添加一个贴图~
绘制面的话~,因为3D世界中游戏面全都是用三角形来拼起来的(出于效率的考虑),所以大家所看到的面其实都是用三角面拼接起来的。那么下面我们看看在Unity3D 中如何绘制三角形平面。先创建一个GameObject对象,我命名为face,然后给这个对象添加两个Mesh属性, 添加MeshFilter(网格过滤器)与mesh Renderer(网格渲染器)属性,这样子就可以绘制网格面了。
为了给网格面贴图,我给mesh Renderer 渲染器添加一个材质,贴上一张图片~ 在3D 的世界中两点可以确定一条线,那么三点就肯定能确定一个面,3D世界中的面一定是三角形拼凑组成,任何3D的面的所需要的坐标点的数量 一定是3的倍数。和绘制线一样,MOMO还是创建一个脚本绑定在摄像头中,然后去访问上面创建的face游戏对象 去渲染三角面~
Build and Run 运行效果后清楚的可以看到两个三角形。MOMO提醒大家 善用三角平面可以绘制出各种各样的游戏面出来噢~哇咔咔~
最后欢迎各位盆友可以和MOMO一起讨论Unity3D游戏开发,总的来说这一章还是比较简单的,不过也是非常重要的一章。代码我就不上传了。哇咔咔~ MOMO愿和 大家好好学习,大家一起进步哈~!!!
分享到:
相关推荐
Unity3D使用GL类绘制曲线,显示在坐标系中
Unity3D教程:实现表格的模拟绘制 Posted on 2013年01月20日 by U3d / Unity3D 基础教程/被围观 356 次 通过简单的例
Unity3D如何画直线、点与插件Vectrosity简介1
unity用LineRenderer实现绘制任意形状几何图形,同时图形附带上刚体重力效果。可让其他物体缘着绘制的线运动。可实现类似拯救火柴人简单游戏效果(我只是代码的搬运工)
基于unity2021版本的单机赛车游戏,内容包括完整的游戏文件游戏玩法是从起点控制赛车在规定的时间内到达终点,需要躲避沿途的障碍物,超时或者碰撞障碍物导致赛车损毁都会使得游戏失败主要技术点:使用easyroads3...
Unity一张图片上绘制动态曲线 1、比使用Line Render要节省计算和渲染 2、真正实现了二维的曲线绘制,Line Render始终是3维的 3、曲线坐标的X和Y的值不能超过贴图的宽度和高度,否则不能绘制
unity中2种模型边缘划线的方法 outline unity3d 效果点此链接:https://blog.csdn.net/luckydogyxx/article/details/105247872
在unity3d建立一个球体,可以在球上画任意线,画圆 三角形 矩形 LineRenderer 画线,
该套餐包括各种船舶、小艇和其他船只。3D模型(OBJ)直接兼容大多数游戏引擎,包括Unity,虚幻和CryEngine。
如果需要绘制两条或更多完全独立的线,则应使用多个游戏对象,每个游戏对象都要有自己的线渲染器 (Line Renderer)。 线渲染器 (Line Renderer) 不渲染宽度以像素为单位的线。它会渲染宽度以世界单位为单位的多边形...
Unity3D游戏开发之射线、角色控制器.pdf
该方案包括有独立障碍物的道路、高速公路以及包括灯柱和建筑栅栏在内的细节。
Unity3D中用Vectrosity插件画直线、画点、画曲线、画方框2
使用Unity3d的Mesh重绘,绘制饼状图。能够实现不同比例的动态显示。
本文实例为大家分享了unity绘制一条流动弧线的具体代码,供大家参考,具体内容如下 最终效果 把下面脚本复制,直接拖上脚本,设置两个点(物体)的位置 GameObject1是开始点的位置,GameObject2是结束点的位置 ...
unity5.6.3X64工程,功能是绘制场景中运动物体的轨迹,即游戏物体运动时把路过的轨迹用曲线绘制出来。任意曲线轨迹都可以实现。
Unity3d C# 实现两点的画线和测距效果功能源码 建议先看说明:https://blog.csdn.net/qq_33789001/article/details/118216951
该资源,是Unity 3D路径跟随,可以选择闭合曲线和非闭合曲线,目标跟随时可以选择旋转跟随和非旋转跟随,曲线的绘制采用Hermite曲线。
unity3d 性能 脚本优化
Unity3d以灵活方便和强大的功能为很多从事虚拟现实和游戏的朋友所青睐,但是对于高速公路、高铁、油田、煤矿、机场、港口、码头、车站、航运、海洋、天然气管道输送、热力管网、南水北调、电力电网、自来水管网、...