文章链接
- Unity官方教程0——系列内容汇总
- Unity官方教程1——Playground学习记录
- Unity官方教程2——Creator Kit Puzzle学习记录
- Unity官方教程3——Creator Kit FPS学习记录
- Unity官方教程4——Creator Kit RPG学习记录
- Unity官方教程5——Creator Kit Beginner Code学习记录
Unity
Unity编辑器
属性
- AddComponentMenu,通过该属性,可以在Unity的Component菜单下添加子菜单;
- AssemblyIsEditorAssembly,程序集级别的属性,具有该属性的程序集中的任何类都将被视为编辑器类;
- MenuItem,通过该属性,可以在Unity的菜单栏上添加菜单项;
- SerializeField,强制Unity对脚本的私有字段进行序列化(Unity对脚本进行序列化时,仅对公共非静态的字段进行序列化,如果需要序列化私有非静态字段,则需要用
SerializeField
属性来指定); - TooltipAttribute,通过该属性,可以在Inspector窗口中为组件的属性指定工具提示(鼠标悬停在上面会有一个工具气泡提示);
- DisallowMultipleComponent,通过该属性,可以防止将相同类型(或子类型)的 MonoBehaviour 多次添加到 GameObject;
精灵
在2D工作控件中,精灵的实质就是2D图形对象,在3D控件中,精灵的实质就是标准纹理,精灵不同于纹理的地方在于可以通过一些特殊技巧在开发过程中组合和管理精灵纹理从而达到提高效率和方便性的目的。
刚体(RigidBody2D)的四个属性:
- Mass,质量,物体的质量
- Friction, 摩擦力,摩擦力越大,物体运动的阻力越大
- Angular Friction,
- Gravity,重力,重力为0是GameObject不会掉下来;
MonoBehaviour
Unity 脚本的基类,继承它的脚本才能被作为组件加入到GameObject中,同时它还提供了基本的事件回调。除此之外:
1. Coroutines,MonoBehaviour允许开启、停止和管理协程;
2. Events,提供了一个事件集合,可以根据具体回调的时机选择执行相应的脚步代码
1. Start,当GameObject开始存在于场景中,或者GameObject开始实例化时。
2. Update,每一帧都会调用
3. FixedUpdate,每一个物理时间段都为调用,调用频率低于Update
4. OnBecameVisible 和 OnBecameInvisible,当游戏对象的渲染器进入或离开摄像机视图时回调
5. OnCollisionEnter 和 OnTriggerEnter,碰撞进入或者触发器进入时回调
6. OnDestroy,游戏对象被销毁时回调
Playground简介
Playground包含的内容:
5个完整的小游戏示例;
上面5个小游戏示例所需要的图片资源(精灵)
上面5个小游戏中用到的预制件(Prefab),包括角色预制件和粒子效果预制件;
包含了四种类型的脚本,分别是:
Attributes脚本
Conditions脚本
GamePlay脚本
MoveMent脚本
问题
问:Maze游戏新建关卡时,先添加背景图片,然后添加砖块,但砖块被背景图片遮挡住了
答:注意场景中层的概念,图片精灵添加到场景中后,除了每个组件都会有的Transform组件,还会生成一个SpriteRender组件,同时还会多出一个Additional Setting选项,这里面可以设置它在场景中的层级,值越小,越在下面,所以只要把砖块的层级设置的比背景的大就可以了。
问:Maze游戏中,触碰到旗子后如何进行场景的切换的
答: 采用了Condition Area
组件,然后在组件中执行
EndOfLevelGameplayAction问: UserInterface(游戏界面)的UI层级是如何保证的?
答:
问:为关卡添加背景音效?
答:添加背景音效
什么是Condition Area组件?
即条件判定区域组件,
1 | using UnityEngine; |
上述代码中,类开头的[AddComponentMenu("Playground/Conditions/Condition Area")]
、属性上面的[Header("Type of Event")]
,这些类似于Java中的注解,在C#中这个叫特性,继承于System.Attribute
类,通常用作限定
1 | using UnityEngine; |
什么是GameplayAction?
Playground 作业
注意:在学习如何制作游戏时,模仿 80 年代老游戏(例如小行星、打砖块、太空侵略者、青蛙等等……)的玩法一般来说是很不错的做法,因为这些游戏很简单。然后,随着你的水平不断提升,你可以添加越来越多的细节并优化互动方式。
如果你需要灵感,请打开 Examples 文件夹并启动其中一个游戏。检查游戏对象,看看我们是如何制作这些游戏对象的,然后尝试创建类似的游戏对象。
todo
打印高级概念中的PDF资料
利用瓦片地图构建关卡