游戏物体GameObject
在unity中所有游戏物体都是GameObject,这也是编程中的对象。
创建物体
在hierarchy窗口中,右击可以创建一个物体,当然也可以创建空物体。
物体属性
创建完物体后,一般可以在此处用这些工具来改变物体。
移动,旋转和缩放都在 Transform中,而碰撞则是Collider中,后面笔记会详细记录Collider,此处只需知道这是用来控制物体碰撞的。
视野中心旋转
选中物体,按下F键,就可以将物体置于视野中心,旋转的时候就可以围绕这个物体旋转
此时新建的物体就是出现在视野中心,非 0,0,0坐标。
透视和正交视图
如上图所示,看起来靠近视野的正方体大一些,其实这两正方体一样大,Persp就是透视视图。
点击一下变成Iso就是正交视图,也就是平面视图,两物体看起来就是一样大。
材质模式和线框模式
线框(Mesh)定义了物体的形状。
创建材质
创建一个文件夹,materials,如下图右击创建材质
材质就可以应用在物体此处,如下图,
如果对unity原生物体应用两个材质,就会有如下提示,而且只有第一个材质生效,
物体纹理
纹理也就是物体表面的贴图,创建一个Textures目录,然后倒入图片即可,
在材质中选择对应贴图即可。
贴图完就是如下所示,会在物体表面有这个图片出现,这里的颜色修改了一下,为了更清晰的看到这张图片。
所以贴图定义了图形表面像素的颜色。
导出包和导入包
如果想把models这个目录下内容导出,则右击,使用Export Package,导出后就是一个 *.unitypackage文件,导入的话就是用import Package导入内容。
父子节点
如上所示,有两个方块,构成父子关系,在Scene窗口中就是左边是父节点,右边是子节点。
父节点移动,旋转,缩放,都会导致子节点做相应外在变化。
如下所示,观察子节点在父节点数值变化时的改变,下图是子节点的初始值。
移动
当父节点移动时,子节点数值Position无任何变化,这是因为Position是相对位置。
Cube(1)是相对Cube的位置,这是一个相对坐标。
而父Cube是相对SampleScene这个场景节点的坐标,只不过相对场景(Scene)坐标被称为世界坐标。
旋转
父节点旋转,子节点Cube(1)的Rotation也没有任何改变。
缩放
父节点缩放,子节点Scale数值也没任何变化。
总结
外在: Scene窗口中的视觉表现;
内在: Inspector面板中的数值变化。
综上,虽然子节点外在随父节点变化而变化,但子节点的Position,Rotation,Scale不会随父节点改变而改变,这是相对父节点的数值。
父节点外在,内在改变,会影响子节点外在变化,不会影响子节点内在变化。
而子节点的外在,内在变化,不会影响父节点的外在,也不会影响内在数值。
预制体
编辑一个预制体,其他物体也会改变。
Hierarchy中的物体只是引用这个预制体的信息,所以预制体改变,所有引用都会改变。
创建预制体
新建一个普通物体,然后拖动到下面后,就成为了一个预制体,上面Hierarchy的Cube就可以删除了。
预制体的文件为prefab文件。
创建父子关系的预制体
后续使用此预制体创建的GameObject,也是存在父子关系的。
解除和预制体的关联
如上图,Unpack可以将物体和预制体解除关联,这样预制体后续的改变就不会影响这个物体了。
导出预制体
预制体的信息是放在其他地方,所以需要导出预制体需要的依赖。
编辑预制体
这三个地方都可以编辑预制体,
上面是预制体编辑页面,编辑好后,ctrl+s,点击箭头处就可以退出编辑页面。