Unity3D学习笔记#3_Unity3D的常用对象和组件


本文内容参考b站视频 1

本文只是提纲挈领的,一定要多点点画画,自己摸索。

1. 地形系统 Terrain

在Hirerarchy面板空白处右键,选择3D Object就可以创建地形对象。我们可以对地形进行各种处理:

地形高度
点击地形对象,在Inspector中找到如下菜单,可以看到对地形的各种编辑选项,比如Raise or Lower Terrain项目,选中后,在下方进行配置(笔刷样式、笔刷大小、抬高速度),然后即可在Scene中,使用鼠标对地形进行升高;按住Shift键,即可用鼠标下降地形。但是注意,地形是具有最低高度的。其它地形的处理功能包括:恒高刷、平滑、画洞等。注意,Shift键有很多作用,要注意相关提示,多点一点画一画。

在这里插入图片描述

在这里插入图片描述

地形纹理
可以先将纹理图片(下载合适的图片)导入Project面板,然后点击如下位置,进入纹理面板:
在这里插入图片描述
然后在下图所示位置,就可以进行纹理操作了,要点如下:
①Create Layer选项可以把图片导入,构建一个纹理样式;
②Add Layer可以把创建好的纹理放置到Terrain Layers区域,从而供我们选择;
③Create的第一个纹理默认为全地形的纹理;
④然后,Create多个纹理,Add到Terrain Layers区域,在Terrain Layers区域选择一个纹理,然后就可以像画笔一样,在地图上绘制纹理了。
在这里插入图片描述
效果如下:
在这里插入图片描述
种树和种草
这里首先介绍如何下载网络资源(Assets)
①进入如下网站,并登录:https://assetstore.unity.com/
②选择免费的资源包,我们现在找一个环境包
③根据提示,添加到自己的Unity中,根据操作,即可在Unity中打开资源
具体可以自己摸索,比较简单。

种树/草的位置和效果如下,操作过程和纹理类似:
在这里插入图片描述
在这里插入图片描述

注意,种草的功能在Paint Details中。草只有在靠近的时候才能看到。只要是图片都可以用来种草。

其他细节
除了上述讨论的内容,还可以设置地形的尺寸(长宽高,注意高度变化不能超过地形最大高度),以及其它一些细节的内容,比如风速等。

此外,还可以加入水、建筑、人物等等东西。比如说,加入人物(第一人称)后,点击上方的运行按钮,我们就可以在场景中行走了!可以选择一些支持人物和各种东西的资源包下载下来进行实验!

在这里插入图片描述
最后强调,在我们编辑完成地形后,所有的内容,包括地形的起伏、树等都保存在了Project面板的地形文件中(默认是New Terrain),如果删除,那么地形就不能再编辑了。

2. 综合实验一

本部分尝试把之前的内容结合起来。经过操作发现,标准资源包只适用于2017版本,所以我又安装了2017版本的资源包。只需通过Unity Hub软件,从如下地方下载安装:

在这里插入图片描述
效果如下:
在这里插入图片描述

3. Rigidbody组件

刚体组件。模拟现实中的物理效果:重力加速度、摩擦力、碰撞检测等等等。

给创建的物体添加Rigidbody组件,物体就不会悬空了,就能下落了。

①快捷键Ctrl+N创建一个新的空白Scene,然后加入一个Plane,一个Cube,可以在Cube上添加Rigidbody功能,它就能掉落在Plane上了。

②Rigidbody中,Drag实际是阻力,Angular Drag是旋转时候的阻力,而勾选Is Kinematic后则物体就不受外力作用了,除了人为拖拽。Freeze Position/Rotation可以锁定某个方向的运动/旋转,使之不能在该方向上运动。

③物体能检测碰撞是由Box Collider组件决定的,如果关掉它会发生穿过去的情况。两个物体碰撞,实际上产生碰撞的是两个碰撞体。碰撞体也有很多种,形状各不一样。勾选如下位置,可以直接在Scene中编辑碰撞体,有两种视图Persp透视图和ISO标准视图(没有透视):

在这里插入图片描述
在这里插入图片描述

④到目前为止接触的组件:

  • Transform,大小、旋转
  • Mesh Filter,形状
  • Box Collider,碰撞
  • Mesh Renderer,渲染
  • Rigidbody,运动

即使运行后,仍然可以编辑比如拖动,在Inspector中修改等!但是有些修改推出运行模式后会自动还原。
选中某个物体后,在Scene中双击F键,可以跟踪这个物体。
在这里插入图片描述
示意图

两个物体碰撞的条件:两个物体都有碰撞体,至少一个有刚体。

4. 物理材质

这是指Collider中的材质选项,这是物理材质而不是纹理!需要在Project中创建Physics Material(配置滑动摩擦力、静摩擦力、摩擦力组合方式(两个物体接触摩擦力如何计算)、弹力、弹力组合方式),然后在Collider中使用它。

如果一个物体不设置物理材质,那么其摩擦力是无穷大。

Project文件夹中的内容可以各种拖动,可以拖动到Scene、Hierarchy、Inspector中合适的位置。

5. 角色控制 Animation组件

这个教程中没有介绍模型的制作,日后需要继续学习。unity推荐的模型格式是.fbx。

模型的头最好和坐标z轴重合,这样向前移动视觉上就是正常的。

用模型生成的游戏对象,在Inspector中会提示是Model。
在这里插入图片描述
Animation是动画组件,是程序运行起来后,游戏对象不断重复的动作。

在Project中展开一个Model,就可以看到它的组成和提供的动画。

在这里插入图片描述
不同的图标表示不同的文件:

预设体
在这里插入图片描述

模型
在这里插入图片描述
网格
在这里插入图片描述
动画
在这里插入图片描述
然后可以把Project中某个模型对应的动画拖到Inspector中Animation中的Animation项目中。在Animation中有很多设置,比如动画的循环频率等等。

哎,,,发现2017版本无法导入别的assets啊,从store无法链接过去,,,那么好吧,又换回2020了。。。2020的界面和教程还是有点区别的,得慢慢摸索。

我下载了一个僵尸角色,发现和教程中的有所区别,这个角色默认的组件时Animator而不是Animation,所以,先看看吧。后续再继续学习。

可以使用代码控制角色的移动。因为还没怎么学习,暂时不考虑。

代码的话,用Unity关联到VS以编辑。

这个教程在这个地方有所缺失,好吧。。。嗯得开始学习C#了。看起来还是蛮简单的。C#中除了自动每一帧触发的函数,还有各种事件触发的函数,很有意思。

可以给两个角色都添加Box Collider,然后给其中之一添加Rigidbody就可以发生碰撞了,只有都添加Rigidbody的并设置好质量等数据,才能模拟真实的物理碰撞效果。

6. AR项目

主流厂商:高通AR,兼容性比较好,但是价格高(商业版本);国内也有一些,兼容性一般。高通AR在百度搜索Vuforia即可注册,下载高通的sdk(for unity),实际是一个xxx.unitypackage资源包,然后就可以供我们导入使用了。

导入后还需要配置license key才能使用,需要在高通网站申请Vuforia\Develop\License Manager,具体需要时查找即可。然后在如下位置填写网站上复制出来的license码即可。
在这里插入图片描述
使用

  1. 将要扫描的图片(场景,我们在这个场景上叠加虚拟内容,类型包括图片、立方体、圆柱等)上传到高通Vuforia\Develop\Target Manager(注意需要先创建数据库);
  2. 把在网站上创建的数据库下载下来并导入到项目中(注意下载时候选择平台为Unity)。它也是xxx.unitypackage格式的文件。
  3. 把Main Camera删掉;把添加到AR Camera Scene中;再把ImageTarget添加到Scene中;配置Image Target[选择database,选择哪一个图片,设置尺寸];配置VuforiaCOnfiguration[勾选加载数据库和激活checkbox]。
  4. 放置要出现的虚拟物体(例如一个人物)作为ImageTarget的子物体,然后运行程序!发现启动了摄像机,我们用它拍摄之前上传照片的那个物体,那么就可以实时把我们叠加的内容显示在该物体上了。

进制、进制转换、编码等内容:补码=反码+1;补码转换为源码可以再求一次补码。

这个教程接下来就开始介绍C#了,然而之前缺失了一部分内容,我会寻找别的教程补充。

参考文献


  1. 视频教程https://www.bilibili.com/video/av83554133/?spm_id_from=333.788.videocard.0 ↩︎

发布了27 篇原创文章 · 获赞 61 · 访问量 9090

猜你喜欢

转载自blog.csdn.net/u013695457/article/details/104750466
今日推荐