游戏对象GameObject


Hierarchy视图的基本元素,在Unity中,每个GameObject都拥有Transform,这是GameObject的一个必须包含的一个基本属性,以标志其“存在”,包括位置(常用以平移)、旋转的角度(x,y,z,分别对应沿着x,y,z轴的旋转角度),缩放(表示x,y,z轴上的缩放大小,为1表示无缩放。),在游戏引擎中transform是用矩阵进行计算的。最后以决定其平移的位置,旋转角度,缩放大小。


在Unity中GameObject也可以是一个空对象 Empty GameObject(但不是null),其拥有transform。所以可以看出,GameObject更像一个基本容器,其以添加组件的方式定义其行为与表现。


对象组件Component


Unity将场景模型可以简单理解为:游戏对象与组件,游戏对象是容器,是表示模型的存在,而组件则定义了模型的行为与表现,组件是一个脚本,文件命名与文件类内定义名称一致,必须继承MonoBehaviour。


组件的创建方式为:GAmeObject.AddComponent或者从游戏对象获取组件对象 : GAmeObject. GetComponent,而不是以New方式




游戏对象添加不同的组件就可以成为场景中的一个模型,下面是一些简单分类与模型的举例:


抽象物体:GameObject可以表现为一个一个不可视的但确实存在的游戏模型,如


摄像机(Camera),整个场景的显示依赖摄像机的投影呈现,Unity在3D场景使用的是透视投影,即远小近大的显示效果,投影区域为一个椎体;而2D场景是一个正交投影,投影区域是一个长方体。


光线(light),呈现物体的光影时依赖其的照射,在一些普通引擎模型中,场景中没有light,成像就是完全漆黑的,因为模型没有光源照射就是不可见的,这更符合现实一些。


音响(audio):声音的播放与控制;




可视物体模型:


3D场景的普通物体模型:长方体、球体、锥体等


2D场景一般为平面图像:Unity中以精灵来显示图像,在一个3D引擎中2D场景是忽略Z方向的坐标而已,令其正对摄像机即可;


UI对象:将一些对象定义为一些UI元素,按钮,面板,文字等;


粒子系统(particle System):以模仿显示中如雨点,灰尘,冰雹等微小的场景模型。MonoBehaviour




以上这些具是在游戏对象的基础上为其增加组件实现。




资源文件Assets


游戏对象的集合可以储存在场景文件中,以scene后缀


组件以脚本方式存在,其必须继承MonoBehaviour。


预设资源是为了游戏对象的重复使用,场景中每一个预设实例都是原始预设的克隆,其只保存一份游戏对象的数据再预设中。




以及其他一切游戏资源。




组件与对象的继承关系


unity游戏修改搜不到数值_游戏