本章开始重头编写并讲解保存系统,讲解关于二进制和电脑数据文本存储,学习读取和写入文件。 SavingSystem_X SavingWrapper_X
介绍了两种方法来存储多个移动的数据,一种是字典,一种是结构体 Mover:
P83 教程部分使用savingSystem.LoadLastScene的方法,教程中是直接将Start作为协程来使用,随后将逻辑调用全都写在了start中,虽然只是一个测试功能, 这里其实不太建议直接写在Start中,最好自己写一个方法用来验证即可。 SavingWrapper: Fader: ...
前面我们在生命值中添加了存档系统的接口和捕获方法,通过存档系统可以报数据存储下来,将玩家的数据ID设为唯一,在Portal门户切换触发后,调用存档方法,异步加载场景之后在加载数据,这样在切换场景后,玩家的生命值也会同步一直更新,无论我们怎么切换场景后,两个场 ...
通过存档系统,保存角色以及敌人的生命值,在Health中添加接口ISaveable Health中添加如下方法:
新建保存类,挂载到角色身上,并在Move类中添加接口ISaveable,添加接口对应的方法,便可以在游戏中测试保存加载玩家的坐标位置 SavingWrapper: Mover:
本章节部分讲述保存系统,需要使用教程提供的代码,关于保存系统代码部分,因为该部分略微复杂,教程并没有讲解过多的原理,我们暂时就当做一个API用来使用。 代码如下: ISaveable: SerializableVector3: SaveableEntity: SavingSystem: ...
为了每次传送时都拥有淡入淡出的效果,直接在游戏中通过脚本实例化一个持久对象,在场景切换时会一直存在,重复调用。调用Fader脚本时,先将之前的测试代码给删除。 PeristentObjectSpawner: Fader: Portal: ...
为了防止加载场景过于生硬以及等待时长,使用UI组件制作一个淡入淡出的效果,在切换场景时播放,通过控制canvasGroup的alpha来实现效果。 Fader:
当场景出现多个触发传送点时,需要知道传送和传送之间的正确性,使用一个枚举并设置变量,用来设置多个触发传送的目标点,给两个场景中互相传送的目标点设置为一致。这样就可以让玩家识别传送到哪一个传送点。 Portal: ...
设置玩家的传送点,加载场景后更新玩家的位置 Portal:
讲解关于协程的知识,通过协程加载场景,在场景中创建一个用于加载场景的门户 Portal
在导演控制脚本中编写逻辑,在动画播放时取消玩家的动作,禁用玩家的控制器脚本。动画停止时启用。 之前的战斗脚本中调用取消方法,只是停止了攻击,并没有取消移动,所有需要先加上 Mover: CinematicControlRemove: ...
进入到动画触发时,当点击地面,会发现玩家依然可以行动,所以需要取消玩家的控制权,等触发动画播放完才可以行动。 这里引入了事件的概念和使用,事件主要是用于类和类或者对象之间的通知。 CinematicControlRemove: FakePlayableDirector:该脚本仅仅用于教学,后面 ...
这部分主要讲解关于CineMachine组件的使用,制作触发动画 CinematicTrigger:
设置AI自动巡逻,追逐玩家时,分别为不同的移动速度,由于我们使用的自动寻路,所以在脚本中通过一个变量来设置navMeshAgent的速度,这样我们可以通过变量来自定义玩家和AI的速度,在移动逻辑部分,设置一个浮点值。通过浮点值来设置AI在巡逻时为行走状态,追逐玩家时为 ...
AI巡逻到达每个巡逻点之后停留一段时间,然后在前往下一个巡逻点。
编写AI巡逻的具体逻辑,AI需要先获取当前场景中是否存在巡逻点,如果有巡逻路径,就前往,检测是否到达当前巡逻点,就切换到下一个巡逻点 PatrolPath: AIController:
制作巡逻点,创建PatrolPath脚本,编写巡逻的路径,先将路径点给绘制出来 PatrolPath
添加AI失去对玩家的视线后,在原地怀疑一段时间后,自动回到初始站岗的位置。 AIController
admin6409 看过
admin2529 看过
admin1170 看过
admin1571 看过
admin2530 看过
相关技术
Cg教程_可编程实时图形权威指南
admin6409 看过
《GPU Pro 1》全书提炼总结
admin2529 看过
暖暖技术讲解
admin1170 看过
Unitetokyo2018米哈游技术分享
admin1571 看过