Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第1张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第2张图片

 

1.Creating Scriptable Objects

主要介绍:

在Inspector进行参数说明;

建立一个Scriptable Object;

 

具体实现:

在参数前标注

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第3张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第4张图片

 

构造Scriptable object(注意这里脚本上错了,应该继承自ScriptableObject而非MonoBehaviour

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第5张图片

 

然后在项目里新建刚构造的脚本化对象

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第6张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第7张图片

 

scriptable object的通用样式

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第8张图片

 

2.Damage, Leveling Up and Death

主要介绍:

把属性封装(encapsulation);

设置player的属性升降和死亡升级。

 

具体实现:

还是上面的CharacterStat_SO脚本

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第9张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第10张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第11张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第12张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第13张图片

 

注意封装的方法

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第14张图片

 

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第15张图片

 

3.Accessing Variables in Our System 

主要介绍:

声明装备ItemPickUp的ScriptableObject,来标准化装备属性。

在CharacterStat_SO脚本继续添加穿脱武器盔甲的方法。

构造函数(constructor)即单例的使用。

使用ScriptableObject,并保存游戏数据。

 

具体实现:

在之前的Scriptable Objects文件夹下新建脚本ItemPickUp_SO ,用于装备属性。

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第16张图片

注意enum的声明是在类外的,该类为SO

 

然后在Monobehaviours文件夹下新建脚本CharactorInventory,该脚本没有具体内容,只有单例。

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第17张图片

 

然后我们来继续写CharacterStat_SO脚本,后面标注new的就是这一节新添加的内容。

这个脚本就是标准化,即把player所有相关的变量和方法都放在一起。

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第18张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第19张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第20张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第21张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第22张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第23张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第24张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第25张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第26张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第27张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第28张图片

 

然后在Monobehaviours文件夹下新建ItemPickUp脚本,该脚本是对ItemPickUp_SO的使用,就和Serializable对象嵌套一样。里面的itemDefinition只是定义,一个装备组应该是ItemPickUp[] item = 读到的装备列表。

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第29张图片

 

还是在Monobehaviours文件夹下新建CharacterStat脚本,用来使用对应SO。

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第30张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第31张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第32张图片

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第33张图片

 

注意里面换装备方法,使用判断是否脱装备来实现,感觉不错。不过里面的遇到同类装备变空实际应用里不要这样。

 

至于SO对象的读写则参考1 参考2

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第34张图片

 

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第35张图片

 

Beginner Programming: Unity Game Dev Course(5)- Creating a Character Stat System_第36张图片

 

这部分教程和里面讲的SO对象一样,都是对游戏的标准化。就像写作文老师教的各种步骤一样,标准化流程方便阅读代码,也不会在某块功能上遗漏然后在整个项目里找来找去。

 

总结就是,把一个模块相关的代码实现全都放在一个脚本,这个脚本是功能性的,就像电话簿。可以用教程里的SO方式,也可以用单例的方式。再在其他需要的地方调用这些变量和方法,虽然多了一个步骤,但整个项目的逻辑性提升非常多。

 

完毕。

 

 

 

 

 

 

 

 

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