GameLoop
她从自己的房间出来,做到我的床上,我还在不断的修改我的代码,总觉得我的代码不够优雅,我最近似乎得了强迫症,她看了一会儿,问我:"你要喝点水嘛?"
"谢谢,现在不用"
"那你要不要吃点什么呀?"
"现在不饿"
"你就不能多说点?一问一答的,烦死了"
她说完气呼呼的回了自己的房间,把门一摔.
我一惊,确实,晚上回来吃完饭,洗完就坐在电脑前,不陪她刷剧,星期天也不陪她逛街,也没有陪她下楼拿快递.好长时间她都是自己一个人,从来没有抱怨什么,她只是想让我多和她说说话.
我先按下Ctrl+s ,保存一下我的进度
然后拖着拖鞋,来到她的房间,发现她抱着腿坐在地毯上,小脸埋在膝盖上,我心疼极了.也陪她坐在地毯上,搂住她,抚摸着她的头发.
我说:"刚刚我在想,真实的世界是不是高级文明的游戏啊?" 她停了一下,似乎并没有预料到我会这么说,.但我知道,如果我给她讲点科幻的比直接哄她更有效.
我继续说:"我们这个世界,如果用游戏里面的话来说就是一个开放性世界,我们看到的都是模型,如果你在我身后,我快速的回头看,也许我能看到正在渲染中的你."
"你放屁,我是真的,我有自我意识,我不是AI"她连忙抬起头否认.
我说:"也许造物主把你做的这么真实就是为了欺骗我,就像西部世界里面的接待员"
她语言又止,显然她正在想怎么反驳我.
既然她想反驳我,她就一定不生气了,我就和她道歉,最近太醉心与代码重构,以至于忽略了你的感受."
我在想把游戏的所有逻辑都放在一个脚本中统一管理呢,还不知道可不可行.
她问:"为什么要这么做啊?"
我回答:"如果项目中有许多个挂载的组件,那样找起来修改太麻烦了"
"哦".她若有所思"你又把代码写乱了吧?"
"....."
自从我给她讲了讲编程知识,她就越来越聪明,而且总是能一针见血.
"对"我回答
"你想到办法了吗?"
"就是统一管理啊,把所有初始化,帧更新都放在一个名为Loop的脚本里面."
"这个听起来有点像外观模式啊"
"我给你看下我构思的样子"
说完我去房里把笔记本拿出来
"我写了几个测试的脚本"我说,"分别是一个AI,一个Enemy,还有一个Player,这些都是需要在游戏运行过程中不断的更新的"
Enemy_Scripts.cs
public class Enemy_Scripts { // Use this for initialization public void Init () { Debug.Log("初始化Enemy"); } // Update is called once per frame public void Update () { } }
AI_Scripts.cs
public class AI_Scripts { // Use this for initialization public void Init () { Debug.Log("初始化AI"); } // Update is called once per frame public void Update () { } }
Player_Scripts.cs
public class Player_Scripts { // Use this for initialization public void Init () { Debug.Log("初始化Player"); } // Update is called once per frame public void Update () { } }
"它们后面都没有那个"她有个疑问了她应该说的是这些脚本并没有继承自Monobehaviour.
我回答:"这样它们就不用挂载了,开发的界面很简洁,通过new的方法来调用它"
然后我又写上了
Loop_Scripts.cs
public class Loop_Scripts : MonoBehaviour { Player_Scripts player = null; Enemy_Scripts enemy = null; AI_Scripts aI = null; void Init() { player = new Player_Scripts(); enemy = new Enemy_Scripts(); aI = new AI_Scripts(); } // Use this for initialization void Start () { Init(); player.Init(); enemy.Init(); aI.Init(); } // Update is called once per frame void Update () { player.Update(); enemy.Update(); aI.Update(); } }
"哦,我明白你意思.你就是想把每个脚本自己可以做的事情,比如初始化,帧更新,换到这个loop脚本中用它来控制这么多的脚本中初始化和帧更新的功能对吧"
"太对了,我就是这么想的"我回答
"但是你可以把loop写成单例,然后就可以在其他地方通过单例来调用这些脚本中的方法了不是吗?"
她这一句话瞬间让我茅塞顿开,对呀,这么好的方法,真乃天女也.
【51CTO.com快译】 数据可视化工具不断发展,提供更强大的功能,同时改善可访问...
前提条件 请您在购买前确保已完成注册和充值。详细操作请参见 如何注册公有云管...
Docker生成新镜像版本的两种方式 There are two ways Docker can generate new m...
从 10.0.0 版开始,异步迭代器就出现在 Node 中了,在本文中,我们将讨论异步迭...
摘要 元旦期间 订单业务线 告知 推送系统 无法正常收发消息,作为推送系统维护者...
信息化2.0时代提出开展智慧教育创新发展行动。2019年2月,中共中央、国务院印发...
本文整理自直播《Hologres 数据导入/导出实践-王华峰(继儒)》 视频链接: https:/...
在Python语言中有如下3种方法: 成员方法 类方法(classmethod) 静态方法(staticm...
建站 什么 虚拟主机 够用?这要看搭建的是什么类型的网站。比如个人博客类型的网...
2021年3月24日,主题为《数据的世界,世界的数据》的星环科技2021春季新品发布会...