`

Unity3D 游戏引擎之游戏对象的访问绘制线与绘制面详解(十七)

 
阅读更多
Unity3D 游戏引擎之游戏对象的访问绘制线与绘制面详解



雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/561



一眨眼学习Unity3D 也有一段时间了,基本已经拿下了这套游戏引擎,回过头来想想以前写的RPG 游戏引擎,越来越发现以前写的就是垃圾。人果然是要不断学习与不断进步,好好学习,天天向上。哇咔咔~ 加油!!



最近做一个项目须要去绘制线与绘制面,那么把这两天的学习笔记整理一下,一是给自己留作备忘,二是方便初学者学习。
任何一个无规则曲线它都是有若干个线段组成,及时是圆形它也是又若干个线段组成的,也就是说将若干个线段拼接起来就是我们须要的无规则曲线~那么在3D 的世界中我们须要知道 X Y Z 三个点来确定一条3D线段。



首先先使用Unity编辑器的方式来添加一条线~
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游戏开发入门教程整理.pdf

    Unity3D是一款功能强大且广泛应用的游戏引擎,本教程旨在引导读者从零开始学习Unity3D游戏开发。通过本教程,读者将掌握 Unity3D 的基本操作、游戏开发基础知识、游戏世界创建、角色控制器、脚本编写等方面的知识。...

    unity3d 游戏场景模型 地形地貌素材包 Landscapes Part2.zip

    《Unity3D游戏场景模型与地形地貌素材包详解——Landscapes Part2》 Unity3D作为一款强大的跨平台游戏开发引擎,深受开发者喜爱。在游戏制作过程中,场景模型和地形地貌的设计是至关重要的,它们直接影响到游戏的...

    《Unity3D ShaderLab开发实战详解》源代码

    《Unity3D ShaderLab开发实战详解》是一本深入探讨Unity引擎中ShaderLab技术的专业书籍,其源代码提供了丰富的实例,帮助读者深入理解并掌握Shader编程。ShaderLab是Unity3D中的一个专用语言,用于创建自定义图形...

    j2me游戏引擎详解

    **J2ME游戏引擎详解** Java 2 Micro Edition(J2ME)是Oracle公司为小型设备和嵌入式系统设计的一种Java平台。它主要用于移动设备,如早期的智能手机和平板电脑,提供运行Java应用程序的能力。在J2ME的环境中,游戏...

    Unity 5.X 3D游戏开发技术详解与典型案例.pdf

    根据提供的文件标题、描述以及标签信息,我们可以提炼出与Unity 5.X 3D游戏开发相关的几个关键知识点。虽然部分内容并没有提供具体的技术细节,但从标题和描述中可以推测该文件涵盖了Unity 5.X版本下的3D游戏开发...

    Android_3D游戏开发技术详解与典型案例

    3D游戏的核心是3D图形引擎,如Unity3D、Unreal Engine、Cocos3D或自研引擎。这些引擎提供了强大的3D建模、渲染、动画和物理模拟功能。在Android上,开发者通常会选择性能优化较好的引擎,如Unity,因为它支持多种...

    Unity3D图片滑动效果

    ### Unity3D图片滑动效果实现详解 #### 一、概述 在Unity3D中实现图片滑动效果是一项常见的需求,特别是在开发具有交互性的游戏或应用程序时。通过使用C#编程语言结合Unity引擎提供的功能,我们可以轻松地为游戏...

    unity3d基本操作学习

    Unity3D是一款强大的跨平台游戏开发引擎,广泛应用于游戏开发、虚拟现实、增强现实等领域。本文档旨在介绍Unity3D的基本操作,帮助初学者快速上手Unity3D的开发环境。 一、Unity3D基本操作概览 Unity3D的核心操作...

    Unity3D Terrian中文教程

    地形在Unity3D中的工作方式与普通的游戏对象有所不同,主要体现在以下几个方面: - **没有转换轴**:地形没有转换轴(Transform Gizmo),这意味着你不能直接通过拖拽来改变地形的位置。 - **使用画笔工具**:通过...

    Unity制作的二维游戏

    Unity3D虽然以3D闻名,但其2D系统同样强大,包括2D物理引擎、精灵(Sprite)渲染、UI系统、动画系统等,使得开发者能够轻松创建出丰富多彩的2D游戏世界。 1. **2D渲染**:Unity的Sprite Renderer组件是2D图形的核心...

    Unity3D总稿

    ### Unity3D核心知识点详解 #### 一、Unity3D基础 **学习界面:** Unity3D的界面设计直观且用户友好,初次接触Unity的新手也能迅速上手。该界面包含多个面板,如Scene视图、Game视图、Inspector面板、Hierarchy...

    unity3d---小地图

    Unity3D作为一款广泛使用的跨平台游戏开发引擎,提供了强大的工具和API来实现这一功能。 #### 二、知识点详解 ##### 1. 小地图的基本原理 小地图通常采用一种全局视图来显示游戏世界的简化版本。在这个视图中,...

    Unity3D教程:播放视频的两种方式2

    Unity3D 是一款强大的跨平台游戏开发引擎,支持多种游戏类型和丰富的多媒体功能。在Unity3D中,播放视频可以通过两种主要的方法来实现,分别是游戏对象播放和GUI播放。这两种方式各有特点,适用于不同的应用场景。 ...

    画图工具9-27.rar_unity 3d_画图工具

    在Unity 3D这个强大的游戏开发引擎中,实现交互式画图功能对于许多应用来说都是一项重要任务。本篇将深入探讨如何利用Liner这一工具在Unity 3D环境中构建触摸屏可用的画图工具,以及如何实现线条粗细和画笔颜色的...

    Game Engine Architecture(游戏引擎架构).PDF

    本书深入浅出地介绍了游戏引擎的设计原理与架构模式,为读者提供了一个系统性的视角来理解现代3D游戏引擎的工作机制和技术细节。 #### 二、游戏引擎的基础概念 1. **游戏引擎**:一种软件框架或平台,用于简化游戏...

    unity3d 特效

    Unity3D是一种功能强大的跨平台游戏开发引擎,广泛应用于游戏、动画、虚拟现实(VR)及增强现实(AR)等多个领域。在Unity3D中,特效是指通过编程与美术手段相结合,在游戏中实现各种视觉效果的技术。这些特效可以包括...

    MeshMaker:Unity模型绘制工具

    Unity是一款广泛应用于游戏开发、虚拟现实和增强现实领域的强大引擎,它提供了丰富的工具和功能来创建、编辑和管理3D模型。在Unity中,有时候我们可能需要自定义或者手动绘制特定的3D网格,这时MeshMaker就显得尤为...

    unity 3d的一些笔记

    ### Unity 3D 笔记知识点详解 #### 一、变量声明 Unity 3D 开发过程中,变量声明是基础中的基础。以下是一些常用的变量类型及其用途。 1. **整型 (int)**: ```csharp var a: int = 1; // 整型 ``` - 用于...

    004《Android_3D游戏开发技术详解与典型案例》.rar

    《Android_3D游戏开发技术详解与典型案例》是一本深入探讨Android平台上3D游戏开发的专业书籍,高清扫描版确保了内容的清晰可读性。在Android应用市场日益壮大的今天,3D游戏作为吸引用户的重要手段,其开发技术也...

Global site tag (gtag.js) - Google Analytics