unity基础(2)——3D对象基础概念与简单操作
内容参考Unity官方基础教程
操作系统:Win10
Unity版本:2019.4
在Unity Hub创建项目时选择3D模板。
初始界面
默认3D场景中只有一个相机和太阳,Hierarchy窗口也只有对应的两个GameObject。
- Main Camera:控制游戏视图时的视野;在Hierarchy窗口选中后,快捷键Ctrl+Shift+F可以自动调整位置,使主摄像机的视野能够看到整个场景。
- Directional Light(定向光):模拟太阳,产生遇到GameObject会反射的光线。定向光可以视为从很远的地方射过来的光线,所以更改其位置不会对场景产生影响,但可以通过更改照射角度来更改场景中的光线角度。更多光的类型可以查阅Unity手册
创建简单3D对象
在Hierarchy窗口单击鼠标右键,选择3D Object,然后可以选择多种基本对象(primitives)。
这里选择Cube,这时Hierarchy窗口和场景视图中会出现该GameObject。
选中这个Cube,Inspector窗口会显示对应的属性。
Inspector窗口中显示的每个部分都代表一个component(组件),表示所选GameObject的一组属性或行为。
注意:Unity中Y轴是垂直轴,X轴和Z轴表示水平面。
- 可以修改GameObject的名字:
- 可以修改GameObject的形状:尝试将Transform组件中Scale的Y改为2,会发现Cube的高度变成了2。
所以Cube可以根据需要变换为各种形状的长方体。
在Hierarchy窗口中组织GameObjects
创建子对象
当我们想在Cube下创建一个子对象,可以在Hierarchy窗口的Cube上单击鼠标右键,这里选择一个Sphere。
Hierarchy窗口下图所示:
此时我们会发现场景视图中看不到Sphere,这是因为子对象的位置和尺寸由父对象决定,初始时子对象在父对象内部。
在Hierarchy窗口选择Sphere,使用Move Tool在场景视图中移动Sphere,结果如下图:
移动和缩放Cube时,Sphere会随着Cube移动和缩放。
可以在Hierarchy窗口拖动Sphere来删除父子关系或添加新的父子关系。
创建空对象
空对象没有可见的表现形式,但它可以作为占位符或同一类GameObjects的容器。
- 空对象可以起到注释说明的作用,如下图:
“=Player=”和“=House=”是两个空对象,说明了Sphere和Player相关,Cube和House相关。 - 空对象也可以作为其他GameObjects的容器,可以让其他GameObject成为它的子对象。因为子对象的坐标是相对于父对象的,为了不让空对象影响其子对象的位置,我们要先重置空对象的位置。
选择该空对象,在对应的Inspector窗口的Transform组件中,选择该组件右侧的三个小点按钮,然后选择Reset Position,就可以让空对象的位置坐标重置为(0, 0, 0):
复制对象
选中需要复制的对象,单击鼠标右键,选择Duplicate即可复制对象(快捷键Ctrl+D)
添加Rigidbody组件
GameObject默认没有质量,也不会响应重力,但可以通过添加RigidBody(刚体) Component来赋予GameObject物理属性。
操作步骤:
- 在Hierarchy窗口选中想要赋予物理属性的GameObject
- 在对应的Inspector窗口选择下方的Add Component按钮
- 在搜索框中搜索Rigidbody,因为是3D对象,所以不选择Rigidbody 2D
- Inspector窗口会出现Rigidbody组件,勾选Use Gravity即可让GameObject响应重力
- 此时点击播放按钮,就会发现空中的GameObject会下落了
自定义GameObject表面材料(Material)
Unity自带的3D对象没有可视的属性。但我们可以用图片制作材料,材料可以改变GameObject的可视表面,光线也会在表面反射,而且可以让GameObject的表面能够添加物理属性。
可视材料
外观材料可以改变GameObject的可视表面
步骤:
-
准备好想要用的图片
-
在Project窗口,鼠标右键单击Assets文件夹,选择Create>Material
-
Assets文件夹会出现一个Material,形状是3D sphere(球),可以重命名为想要的名字,这里命名为BrickMaterial。
-
将选择的图片放入Assets文件夹。可以直接将图片拖到Project窗口的Assets文件夹,也可以打开文件资源管理器中的Assets文件夹,将图片复制进去。如下图打开文件资源管理器:
-
放入图片后,Assets文件如下图所示:
-
选择BrickMaterial,点击Inspector窗口>Main Maps>Albedo左边的小圆圈(下图红线处)
点击后会弹出一个窗口:
双击选择添加的图片。此时BrickMaterial的表面会变成覆盖图片的样子:
-
此时将BrickMaterial拖到场景视图中的Cube上,可以看到外观的变化:
-
如果想要改变材料的比例,则选中GameObject,展开Inspector窗口中的BrickMaterial窗口,改变Tiling X、Y属性。值越小,GameObject看起来越大。
物理材料
物理材料使GameObject可以反弹,而且可以改变其friction(摩擦)和drag(拖动)属性(只有使用重力的时候才能生效),物理材料不会改变GameObject的可视表面。
步骤:
- 在Project窗口,鼠标右键单击Assets文件夹,选择Create>Physic Material
- Assets文件夹会出现一个Physic Material,可以重命名为想要的名字,这里命名为BouncyBall。
- 选中BouncyBall,在Inspector窗口将Bounciness的值改为1,,让该材料有反弹属性
- 选择一个GameObject,这里继续选择上一小节中的Cube,先为其添加Rigidbody组件,使其有重力属性,然后将BouncyBall拖到Cube的Box Collider组件(该组件Cube初始就有)中的Material插槽中
- 此时Cube碰到其他Object就会反弹(运行后才能看到效果)