Intermediate Programming: Unity Game Dev Courses(2)- Loot System

Intermediate Programming: Unity Game Dev Courses(2)- Loot System_第1张图片

 

1.Setting up Our Scriptable Objects

 

主要介绍:

补充全ItemPickUp_SO脚本并判定loot对象

 

具体实现:

使用Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System 课程里的脚本ItemPickUp_SO和ItemPickUp以及CharacterInventory。

 

先给ItemPickUp_SO添加一些属性。

Intermediate Programming: Unity Game Dev Courses(2)- Loot System_第2张图片

 

然后给CharacterInventory脚本添加保存到Inventory的方法,尽管具体实现没有写。

Intermediate Programming: Unity Game Dev Courses(2)- Loot System_第3张图片

 

然后编辑ItemPickUp,内容是该Item被player捡起了执行穿上或进入背包。

Intermediate Programming: Unity Game Dev Courses(2)- Loot System_第4张图片

Intermediate Programming: Unity Game Dev Courses(2)- Loot System_第5张图片

Intermediate Programming: Unity Game Dev Courses(2)- Loot System_第6张图片

 

2.Setting up Our Interface &Setting up Our Chest with Spawnable Loot

主要介绍:

通过interface来掉落生成装备

 

具体实现:

新建文件夹Interfaces其下新建脚本ISpawn,用于之后宝箱spawn item的固定格式

Intermediate Programming: Unity Game Dev Courses(2)- Loot System_第7张图片

 

Monobehaviours文件夹下新建脚本SpawnItem,并挂到宝箱prefab上

Intermediate Programming: Unity Game Dev Courses(2)- Loot System_第8张图片

 

然后在宝箱prefab上挂上SpawnItem脚本,并拖入Sword。Sword是之前在项目里保存的ItemPickUp_SO型数据。

Intermediate Programming: Unity Game Dev Courses(2)- Loot System_第9张图片

 

sword数据

Intermediate Programming: Unity Game Dev Courses(2)- Loot System_第10张图片

 

注意宝箱prefab子对象里有PointerClick的EventTrigger(这是一个组件,给object添加各类型事件触发,包括点击等),拖入并设置触发刚才写的方法

Intermediate Programming: Unity Game Dev Courses(2)- Loot System_第11张图片

 

然后把箱子prefab的layer设置一下

Intermediate Programming: Unity Game Dev Courses(2)- Loot System_第12张图片

 

在Main场景里新建EventSystem(UI里都自带EventSystem,如果场景里没有EventSystem,则不会触发任何事件)。

Intermediate Programming: Unity Game Dev Courses(2)- Loot System_第13张图片

 

然后在MainCamera上挂组件Physics Raycaster。这个组件容许3d对象接收Event信息,常用于又有UI又有3D对象,且3D对象需要触发Event时。

Intermediate Programming: Unity Game Dev Courses(2)- Loot System_第14张图片

 

然后设置BootScene,就是把UIManager不显示。

Intermediate Programming: Unity Game Dev Courses(2)- Loot System_第15张图片

 

总结:

该章讲了Loot系统,loot要掉物品item,所以有ItemPickUp_SO表示item的信息格式。ItemPickUp表示对Item的操作,比如穿上还是放到背包。

Loot时箱子点击打开,并生成Item,所以有ISpawn来约定每个Spwan脚本里都必须有的内容(spawn出item的信息和材质,以及creatItem方法)。然后写具体要生成Item的脚本SpawnItem并使用ISpawn接口,生成Item主要是在一堆Item信息里选择想要的,然后Instantiate。

最后设置了场景,包括挂入各脚本,场景新建EventSystem来响应Event,Camera上挂Physics Raycaster组件来让3d对象响应Event等。

同样的,该单元依旧展示了标准化流程是如何,每个脚本都各自容纳对应的逻辑,不要到处乱写。

 

完毕。

 

 

 

 

你可能感兴趣的:(•【完整课程】)