文章目录
- 1. 地形系统 Terrain
- 2. 综合实验一
- 3. Rigidbody组件
- 4. 物理材质
- 5. 角色控制 Animation组件
- 6. AR项目
- 参考文献
本文内容参考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码即可。
使用:
- 将要扫描的图片(场景,我们在这个场景上叠加虚拟内容,类型包括图片、立方体、圆柱等)上传到高通Vuforia\Develop\Target Manager(注意需要先创建数据库);
- 把在网站上创建的数据库下载下来并导入到项目中(注意下载时候选择平台为Unity)。它也是xxx.unitypackage格式的文件。
- 把Main Camera删掉;把添加到AR Camera Scene中;再把ImageTarget添加到Scene中;配置Image Target[选择database,选择哪一个图片,设置尺寸];配置VuforiaCOnfiguration[勾选加载数据库和激活checkbox]。
- 放置要出现的虚拟物体(例如一个人物)作为ImageTarget的子物体,然后运行程序!发现启动了摄像机,我们用它拍摄之前上传照片的那个物体,那么就可以实时把我们叠加的内容显示在该物体上了。
进制、进制转换、编码等内容:补码=反码+1;补码转换为源码可以再求一次补码。
这个教程接下来就开始介绍C#了,然而之前缺失了一部分内容,我会寻找别的教程补充。