非常感谢siki学院的这一套教程,短短九天内我已经摸上了unity了,对于unity和c#这两者也有了一定的基础,能看懂unity的一部分代码,这意味着能够解析一部分功能迄今为止第六期我已经把这一套零基础的课程做完了,在成品里面也添加了自己的小东西,体会到了游戏开发的乐趣,希望在后来别的项目课程学习中能够更进一步
那么首先请出我们的今日板绘产品
我也在尽力还原了(这个手是开挂画出来的,因为我画手真的是灾难,灾难啊这张图的原图好像是电妹的二创电妹确实可爱捏很遗憾成为了我的笔下亡魂
今日最后一点点unity的游戏开发细节修理
文字对话框显示
就像是galgame一样出现对话框,用于剧情推动和npc交互
对话内容代码
对话框的显示就是基础的UI对象把对话框的贴图和人物贴图贴上去但是对话框的内容部分需要自己来自定义,因为跟随鼠标点击“按钮”类的对象,需要不断更新我们的对话内容,所以我们需要定义出一整个对话内容的数组,分段分行来展示对话内容。
怪物消灭
在打败怪物之后,我们需要解决一个小bug,就是把被消灭的怪物删除掉,不然这个被消灭的怪物就仍旧会存在地图中
删除怪物的相关代码
打败怪物的相关代码
把打败(当怪物血量为0后)和清除(使用destroy删除当前对象)两个部分的代码串起来后,便能实现这个功能。
第三个细节就是音乐,unity中的audio类中就可以简单调用你准备好的音乐(忘记截图了)用audiocilp在当前场景定义出音乐的对象,将准备好的音乐与这些对象一一对应,设置好触发的条件后,在audio组件中设置音乐播放的属性,循环或者一进游戏就开始播放等等
至此所有基础的部件都已经记录完毕,大概按照这几个板块来细分,就可以解剖一个游戏了
以下是补充代码部分(本人基于c和c++知识的角度看待c#后学到的东西)
1.单例的使用
单例的应用
在c或者c++中,我们为了可以使用其他类内或结构体的属性或者方法,出于封装性的考虑,需要定义出这个类的对象或者子类甚至是友元,单例的作用其实大同小异但是又恰恰相反,你可以在需要定义对象的类中,使用 gamemanager instance来使这个类单例化,类中的start函数中调用单例本身给类赋值。这么做的用处就是我们可以在其他类中不需要定义对象也可以调用单例中的相关属性和方法。其实这类似于从让别人从外部访问,变成了自己主动打开让别人访问(我在说什么很糟糕的东西)
如上图所示,框中的代码就是直接调用了其他类中的函数(当然需要public的访问层级)并加以应用。
2.函数后缀的应用
首先声明这个用法不一定叫这个名字,只是我也不知道它具体叫什么,就索性按照自己的喊法来了
后缀使用
如上图所示,这是一个函数,但也是两个函数(雾
函数的结束后原本是;但是后缀使用的方法就是在已经执行完的函数后用.OnComplete()调用出后缀函数,()中一般也是(()=>{})的形式,在{}里面写入别的函数,代表着在上一句(即后缀之前的函数调用完后)再执行{}内的函数,有严格的先后顺序。
到这里就先给自己休息两天打打游戏了,过几天会继续学习新的案例并在小黑盒跟大家分享一下我的学习状况