版本:unity3D-2018
几何体创建+刚体重力测试+给物体染色
一、新建场景
<暂时不会用到,测试后删掉>
unity3D可以进行多个场景切换,比如游戏中进入一个密闭房间,那么可以把这个房间作为单独的场景,unity3D对其单独编辑
点击【file】——>【new scene】
点击【save】
此时如果旧场景没有任何东西,新场景和旧场景一致,看不出任何区别。
点击【file】——>【save】
跳出保存界面,其中存在的scene是之前的,把新scene重命名。如:【scene2】
此时在【Scenes】下显示了刚刚创建的场景
测试一下:
在场景1中创建一个立方体
在场景2中创建一个球体
鼠标点击两个场景进行切换,发现场景的显示互不影响
二、创建实体
1、创建空物体
在【Hierarchy】栏空白处点击右键,选择【Create Empty】
可以看到,除了坐标系,啥也没有
而右边的【Transform】栏有它的坐标,此时坐标显示的就是空对象,也就是说刚刚创建的空实体的位置就在三维坐标的圆心处。
2、创建实体
【Hierarchy】栏空白处点击右键,选择【3D object】
【cube】立方体
【sphere】球体
【capsule】胶囊体
【cylinder】圆柱体
【plane】平面
【quad】四边形
【terrain】地形区域
【tree】树形物体
【wind zone】风区
【3DText】在地图上显示文字
三、实体属性
创建一个立方体
选中【cube】,进入属性页面
可以看到它的属性:【Transform】、【Cube mesh filter】、【mesh renderer】、【box collider】
【Transform】之前了解过,是设置cube的坐标、角度、大小
【Cube mesh filter】,选中模型,点击右侧的圆圈,出来三维模型。如果选择了胶囊形状,哪怕刚刚创建的是cube立方体,在scene视图显示还是胶囊。这一选项也和下面的【mesh renderer】相关,而且他们都和“渲染”有关系
打开【mesh renderer】,第一项是【lighting】灯光设置,第二项【material】,material决定物体的颜色(颜色设置之后总结)
【box collider】盒碰撞器,在三维实体的外围有个框,用来检测碰撞。
关掉【mesh renderer】,发现cube周围有一个黄色的框,这个框就是box collider
【plane】与【quad】的区别
plane与quad主要区别就在mesh
可以看到quad的网格只有一个,而plane的网格有好多,这也导致适用场合不同,比如做一个大的游戏地图,放置plane更好一点,放置一个路标、广告牌等的话quad更好一点。
四、添加新组件-rigidbody
1、创建
选中cube,点击【Add Component】
输入【rig…】,选择【rigidbody】
这样就创建了一个刚体组件
2、测试-重力属性
①先将camera和cube坐标都归零
②调整摄像机与cube位置,让摄像头清除的拍到cube
③启动运行
运行后发现cube直接掉下去了,原因是没有设置平面,在重力(属性)作用下,直接掉下去
④进入cube的Rigidbody属性页面,取消【use Gravity】,重新运行
发现物体是悬空的,即重力属性没有发挥作用
显示不清楚,给它染色(之后总结)
可以看到它是悬浮的
新建一个平面
调整摄像头位置和旋转(根据需求自行调整),并调整cube位置,使cube位于平面上方
进入cube——>【rigidbody】,选择使用重力,并重新运行
发现cube掉在了平面上,若没有平面,cube会一直往下掉。
3、测试-碰撞原因
将刚刚的平面的【mesh Collider】取消选中
再次运行:
看到cube直接穿过了平面。
到此可以看出【Rigidbody】——>【use Gavity】选择是否使用重力。【box collider】检测碰撞。当【box collider】取消勾选后,软件运行不走box collider逻辑,无法检测碰撞,运动物体会直接穿过下方物体。
为了加深理解,将平面也换成cube,并取消【box collider】勾选:
再次运行:
再次改变地面cube的位置,让上方小cube刚好落在下面cube的边界上,同时勾选【box collider】同意碰撞检测。
再次运行:
综上:【box collider】进行碰撞检测,在【rigidbody】中选择是否使用重力。
五、颜色
1、创建颜色
在【Assets】下创建一个文件夹
命名为material
右键——>文件夹,选择创建一个Material
可以重命名,比如:red
选择颜色
2、上色
直接拖动颜色球到物体上
3、多个物体上色
再创建一个cube
如果仍用刚刚的red颜色球,更改颜色:
发现之前的cube颜色也变了,所以需要重新创建颜色球,重复上面创建的过程,命名为green
拖动绿色球给新的cube上色