首页 > 其他分享 >Unity3D学习笔记(二)创建地形和漫游

Unity3D学习笔记(二)创建地形和漫游

时间:2023-06-14 10:06:36浏览次数:34  
标签:Unity3D 视角 点击 视图 纹理 地形 Unity 笔记 漫游


七月 3 2012 12:35 上午



上一章粗略介绍了一下Unity游戏引擎的概念定义和界面功能,这次就来实践一下。我们的目标是没有蛀牙(误),目标是创建一个地形,上面有山脉和盆地,然后再放置一个人物,以第一人称的视角来漫游、观察我们所创建的世界。

 

在开始设计游戏之前我们需要先重新建立一个我们自己的Unity工程。点击主菜单的"文件→新建工程(File->New Project…)",就可以看到新建工程向导对话框了。

我把工程建建立在E:\Frederick\Unity3D\UnityFundStudy1,注意目前Unity对中文的支持不是很好,因此在 Unity中尽量不要使用中文,防止出现各种各样莫名其妙的异常。点击确认创建,Unity会重启并自动打开我们创建的工程。这时在设计视图面板就可以看 到一个“什么都没有”的宇宙。而在层次面板中则可以看到一个“Main Camera”,顾名思义,就是主摄像机,暂时可以先不理它。

 

作为这个世界的神,我们需要在这个混沌的虚空里创建一个大陆,以承载世间万物。点击主菜单→地形(Terrain)→创建地形 (Create Terrain)。然后在设计视图里就出现了一个不是怎么好看的白色平面,与此同时在层次面板也会出现Terrain,它表示我们刚刚创建的地形。在工程 面板中则会有一个“New Terrain”,代表地形素材。接着可以选择工具栏中的拖动工具,在设计视图中进行以下操作,调整到一个自己看着舒服的视角:

  1. 按住鼠标右键并拖动:旋转视角;
  2. 按住鼠标左键并拖动:平移视角;
  3. 滚动鼠标滚轮:拉近/拉远视角;

这地面白茫茫一片看着一点生命力都没有,回想一下在其他游戏里,都是会有一些草原、沙漠、戈壁之类的吧。所以接下来给我们的大陆加上点“料”,贴上 地形纹理。在此之前需要先导入一些贴图素材,还记得创建工程时候的那些素材包吗?现在我们就导入一个Unity自带的地形素材包。点击主菜单(或右键点工 程视图)“Assets→Import Package→Terrain Assets”,会弹出一个需要导入素材的筛选列表,这里直接点右下角的导入”Import”导入所有素材。导入的素材则会出现在工程视图面板中的 “Standard Assets”文件夹中。

准备好素材后,选中我们的大陆,然后在监视面板中找到地形工具栏,并点击第四个“绘制地形纹理”按钮。继续点击“Edit Textures…→Add Textures…”添加新的地形纹理。在弹出的对话框中找到那个选择纹理的小圆圈按钮,选择“Grass Hill”。不要惊讶为啥地面变成一坨绿色了,那是因为镜头太远了看不清细节,调整一下视角即可。接着如法炮制,把“Grass&Rock”也添 加进来,这样一来我们就有两种地形纹理了。有了地形纹理之后需要做的工作就是使用画刷工具将纹理“绘制”在地形上。选中第二张纹理,然后把鼠标移动到设计 视图中,按住鼠标左键随意“涂抹”(用过Photoshop的画刷工具应该可以轻松领会),涂错了也不同担心,用另外一张纹理覆盖涂抹上去即可。

光有地形纹理还不够,这一马平川依然不能让人感觉心潮澎湃呀,所以还需要给这个地形做个“外科整容手术”,该凸的凸,该凹的凹,跌宕起伏才有韵味 嘛:)上文使用的是第四个按钮“地形画刷”,现在要祭出“地形隆起/凹陷”这把手术刀了。点击第一个按钮切换,发现和之前的工具配置项类似,调整画刷形 状、大小、透明度后,在设计视图再涂抹一下,地面瞬间就隆起啦!如果想取消隆起,可以按住Shift再涂抹,地面就会凹陷下去。顺便再说明一下第二个和第 三个工具,前者是“直接设置地面高度”,后者是“平滑地面高度”,参数都是大同小异。在对前面那块地形稍作调整后,我整了些山脉上去:

唔……没有艺术细胞,将就着看吧,哈哈。至于山脉上面应该有的岩壁纹理,还有花草树木之类的留到下章再讲。是否已经迫不及待想要看看这个世界呢?如 果是自己为游戏做编程,那还需要建立一个角色,然后让它接收用户输入再作出响应,比如走动、旋转视角等等,相当麻烦。Unity为我们准备了大量的范例和 素材包,其中不但包括各种模型、图片,还有常用的脚本等等。例如接下来要使用的角色控制器,完全可以不写一行代码实现上述功能(事实上在3DBuzz的基 础教程中,从头到尾都没有涉及脚本,所以程序新手完全不用担心。)

 

点击主菜单(或右键点工程视图)“Assets→Import Package→Character Controller”,导入角色控制器素材包。在工程面板视图中,在“Standard Assets→Character Controllers”目录下,可以找到“3rd Person Controller”和“First Person Controller”。顾名思义,前者是第三人称视角控制器(类似战神、刺客信条视角),后者是第一人称视角控制器(类似反恐精英、使命召唤视角)。简 单起见我只用到后者,将它直接拖入场景设计视图,随意摆放到一个位置,一个角色就创立完成啦!虽然其貌不扬,长得还有点邪恶XD,但它可以像我们常玩的 FPS游戏一样,用WSAD控制移动,空格跳跃,鼠标控制镜头方向,真是太给力了。如果设计视图视角拉得太远,则会导致几乎看不到它,此时可以双击层次视 图面板上的First Person Controller来让设计视图的镜头对着它,这个操作适用于聚焦任何游戏对象。

完成创建角色控制器后,就可以点工具栏上的播放键测试运行游戏了。呃,天色好暗,环顾四周只能看到山峰的轮廓……这是因为游戏中还没有光,所以几乎 什么都看不见。既然没有光,那就创建一个。先再次点击播放键退出游戏测试,然后点击主菜单“(新建游戏对象)GameObject→(创建其他游 戏...)Create Other→(线性光)Directional Light”,创建一个线性光对象。

神说:要有光。便有了光。

嘿嘿,瞬间整个世界都敞亮了。所谓线性光,可以理解为一个从无限远的地方向某个方向发射一束无限宽的光线,有点像太阳。由于是无限远的,所以不存在 物体在线性光的背面,即使在设计视图中把线性光对象拖到地面以下,依旧能够照亮地面。同时当光线被山脉遮挡时,就会在地面上留下阴影。如果对光线的方向不 满意的话,可以先选中线性光,然后点击工具栏中的旋转工具对其进行旋转。旋转时会出现一个球形,拖动任意一条线即会让物体沿着其中心轴旋转(该操作适用于 任何游戏物体,具体动手尝试一下即可)。

 

终于可以在亮堂堂的世界里畅游啦,还是蛮有成就感的嘿。

最后别忘了把游戏场景保存一下,方便下次再次编辑。点击主菜单中的“File(文件)→Save Scene(保存场景)”,由于之前没有保存过场景,所以Unity会弹出一个保存框让用户选择保存位置。为了方便管理,我在Assets目录下新建了一 个Scenes目录,然后保存为 ElwynnForest。当下次打开Unity时,Unity会自动打开最近一次编辑的项目和场景,此时保存场景就不需要再输入文件名了。

 

关于地形的创建和漫游的笔记就到这里,下一章我们给这片荒野加上一些花草树木,展现一下大自然的独特魅力:)

 

 

备注:在加入角色控制器后,运行会发现视线一直在往下掉,你会看到前面加入的树在往上上升,这是因为重力的作用,必须将First Person Controller的一项名为 Gravity的属性设置为0(位于 Movement栏目下,见下图),默认是20,这样就不会发生往下掉的情况了。

Unity3D学习笔记(二)创建地形和漫游_右键


 

 

 

标签:Unity3D,视角,点击,视图,纹理,地形,Unity,笔记,漫游
From: https://blog.51cto.com/u_16160131/6475559

相关文章

  • Unity3D学习笔记(一)界面介绍
    六月2020128:05下午从开始学习Unity到现在已经过去近三个月了,期间零零散散地在网上找教程、实例,感觉印象不够深刻。好多知识点不是被忽略了,就是被遗忘了。有幸在六一儿童节的时候发现了3DBuzz的基础视频教程,犹如介绍所言,几乎详细到每个菜单和按钮。为了部落(误),为......
  • celery笔记三之task和task的调用
    本文首发于公众号:Hunter后端原文链接:celery笔记三之task和task的调用这一篇笔记介绍task和task的调用。以下是本篇笔记目录:基础的task定义方式日志处理任务重试忽略任务运行结果task的调用1、基础的task定义方式前面两篇笔记中介绍了最简单的定义方式,使用......
  • 《重构-改善既有代码的设计》个人总结笔记
    重构refacting在不改变代码外在行为的前提下,对代码内部结构进行修改。是一种代码的整理方法,本质上就是在代码写好之后改进设计。每一次修改,完成之后都要进行测试,因而在重构之前,准备一套较为信赖的测试数据,以保证重构的正确性很重要提高代码的可修改性,降低修改成本,提高阅读性营......
  • 【高数笔记 · 〇〇】走进高等数学的世界吧
    前言这一段里面都是我自己想说的话而已啦,如果想要直奔主题,请直接看向下一段。笔者的碎碎念嘛高考总算是结束了。一直想要搞一个讲大学的高等数学的系列文章,但是一直以来也没有时间付诸实践。在这个漫长的暑假期间,总算是有闲暇时间好好地讲一讲高数了,想想都很激动(并没有)呢~(^^......
  • Java面试笔记202306
    Java基础ArrayListArrayList底层数据是动态数组,初始长度为10,每次扩容为原来的1.5倍。扩容流程:首先会创建一个新的长度的数组,然后使用Arrays.copyOf()方法将旧的数组中的元素复制到新的数组中,最后会将新插入的数据插入到新的数组中。IO和NIO的区别io指的是io流。可以实现数......
  • 【阅读笔记】RAISR
    RAISR:RAISR:RapidandAccurateImageSuperResolution--YanivRomano,2017(211Citations)核心思想LRpatch$A$与滤波器$h$卷积=HR像素$b$算法流程offline阶段:X2SR1、LR图通过bicubic插值,得HR初始图$Y$,$Y$的像素分为4个像素类型(P1-P4),分切$\sqrt{n}*\sqrt{n}......
  • 任意模数多项式乘法(MTT)学习笔记
    三模数NTT常数大、速度慢、精度高是它的特点。在考虑三模数NTT之前先考虑一下中国剩余定理吧。已知\[\begin{cases}x\equivx_1(\bmodm_1)\\x\equivx_2(\bmodm_2)\\x\equivx_3(\bmodm_3)\\\end{cases}\]求\(x\bmodm_1m_2m_3\)。有\[\begin{aligned}&k_1m_1+......
  • 2023Wireshark学习笔记 -- 过滤器
    一、下载与安装下载地址:https://www.wireshark.org/download.html下载好后,一路下一步即可。二、打开软件,选择有数据走动的,一般就是我们的网卡,双击进入三、进入后所有经过网卡的数据包都会被记录四、筛选过滤器1、过滤ip地址为本机ip的ip.addr==192.168.1.1162、过滤目标ip或者源ip......
  • Camera | 11.瑞芯微摄像头采集图像颜色偏绿解决笔记
    前言在实际调试基于瑞芯微平台的camera过程中,发现显示的图片发绿,现在把调试步骤分享给大家:1、修改iq文件sdk中位置:@external/camera_engine_rkaiq/iqfiles/isp21/ov13850_ZC-OV13850R2A-V1_Largan-50064B31.xml【现在已经不用了。主要用json配置文件】@external/camera_eng......
  • 山东集训笔记
    4.29访问数组某一位后其后面若干位会进入缓存,缓存运行速度较快。因此多维数组可以通过优化循环顺序提高运行速度。::a可用来访问全局变量。从\(i\)到\(j\)走\(k\)步的方案数可用矩阵加速。\(C=a^k\),a表示邻接矩阵。具体见图:4.30运用逆元对除法做模运算(适用范围:\(b......