首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

简单任务系统

代码已上传至github:

https://github.com/pinzeweifen/demo/tree/master/Unity/Frame

作为一个Unity的用户,接触这编辑器已经很久了,写的代码一般都是拖拖拖。

也萌生过写个架构,但是都失败了。至于原因可能是我知识量不足?

作为只萌新,今日来写写任务系统。

首先我想知道的是任务到底有哪些类型,然后我找到了这边文章,我觉得他归类得很好,所以直接用他的了

https://necromanov.wordpress.com/2010/11/23/quest_design_2/

先把底层写了,我应该有一个抽象的任务类,它将会记录任务的状态

在我的设计中,所有任务都会在游戏开始的时候就创建完毕,将会有一个管理类来管理到底哪个任务接受哪个任务完成和放弃。所以我用了一个词典来保存所有的任务。

任务管理器全局当然只会有一个,你可以添加单例模式。如果添加的任务ID 重复了就返回true。如果要在返回true后执行代码,只需要这样

假设返回检测的是false ,你将会多执行一次取反操作。

我应该可以查询到某个任务是否可接

由于我想使用类代替运算符操作方便数据转换为对应代码。所以封装了四个运算符

不相等就只是取反而已,它使用起来就像下面这样

调用管理器接受任务之后,将会调用Task的Start

它首先检查的是否可接受任务,如果可以就改变为正在进行任务的状态,并且通知开始任务,为啥要通知呢,毕竟我不可能在这里写上调用UI 的代码(#^.^#)

如果任务已经完成那么就需要提交任务

检查完状态后,判断是否可以领取奖励,领取完成更改状态并通知任务结束

还有放弃任务,没什么好说了,自己领会

当然啦还有就是任务更新

至此抽象的任务类就完成了?,不!你可以添加一些字段令子类不那么苦逼

实现一个具体的任务类型,【击杀任务类】

击杀嘛当然是杀死某单位的时候更新任务状态,在开始任务的时候监听死亡事件

在更新前判断一下条件是否为真

更新一下杀怪的数量,如果已经杀够就改变状态

在领取奖励或放弃任务时,删除事件监听

当然这个类其实还没写完,需要你自己补充完整。其他类型任务应该很好写,就讲到这里啦

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180213G0E3HF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券