辛巴学院-Unity-剑英的c#提高篇(一)主循环

这是测试版

辛巴学院:正大光明的不务正业。

最近刚刚离开了我服务了三年多的公司,因为一个无数次碰到的老问题,没钱了。

之前不知道做什么好的时候,机缘巧合之下和哒嗒网络的吴总聊了一下,发现了vr game这扇窗户,这里权当帮哒嗒网络打个广告吧。^_^

回头看看仓惶的这一段时间,荒废了很多,抽空回来再和大家聊聊c#。

之前做了个入门系列,胡乱说了些东西。感觉入门这样子也就差不多了,该稍微提高一点了。

?

从写一段程序,到写一个app,写一个游戏,到底其中有什么不同呢?一段程序的执行时间很短,一个应用的执行时间很长,仅此而已。

?

游戏中存在一个帧的概念。

这个概念大家都知道,类比的话,它就是电影胶卷的格。一格出现一段时间,然后换下一格。

电影一秒24格,游戏用的是一秒30帧,60帧。

电影胶片是在镜头前一格一格的放映,游戏逻辑是在update中一帧一帧的执行。

那么Update函数的驱动是如何完成的呢?

?

这个东西就是主循环

先来看看一个基本的控制台程序

唔,helloworld,这个程序我们已经很熟悉了。一闪而过的那个版本。因为他执行然后马上就结束了。

?

那么这个版本呢?

你会说,我去,你写了一个死循环。

?

是的,主循环就是一个死循环。有了这个死循环,一段程序就能逐渐成为一个应用,一个游戏。

让我们把update拆出来,是不是看起来有点熟悉了。

?

再来个OnStart,是不是更加熟悉了

原来Unity的MonoBehaviour就是这样啊。

?

任何的程序中都存在着主循环,在常用的界面框架中,通常隐藏主循环,留下事件型的接口。

主循环很简单吧,仅仅是看起来这样。

游戏程序通常事件型的框架不多,大部分逻辑需要从主循环层次开始组建,也就是你需要对主循环的理解非常深,能够从主循环上创建很多种模式的逻辑。

我们开始来介绍几个常见的

主循环和定时器

试想如下需求,需要每三秒钟打印一条log,怎么做这个三秒钟的计时?

电影是24格,每秒钟24帧,稳定的,雷打不动。通过数帧就知道个大概。

可是大家都知道游戏的帧率是跳跃的,每一帧的时间不固定。

Unity提供了一个参数,告诉你上一帧开始,到这一帧开始经过的时间,单位为秒 Time.Deltatime;

因为每一帧开始到上一帧开始的间隔给你了。只要把他们累加起来,就是一个计时器。你可以用秒表确认一下这个程序,他的表现和你的秒表一样精准,分毫不差。

这就是一个计时器了,一个用不稳定的帧速率的主循环驱动的计时器。只是他光计时了,啥也没干,我们来让他做点什么。

这类的代码,是循环模式中第一常用的,当理解之后就再也不用回头看这些代码。如果这样的代码还要你有所纠结,那就还是要花点功夫,让你能够彻底的理解这个deltatime。

?

?

?

?

再会,哈库拉玛塔塔

时间: 2024-10-10 21:12:32

辛巴学院-Unity-剑英的c#提高篇(一)主循环的相关文章

辛巴学院-阅微堂-剑英陪你零基础学c#系列(一)Hello World

辛巴学院:一个不花钱的攻城狮地下网络学院.辛巴学院:愿天下所有的攻城狮,都找到失散多年的荣耀石. 剑英陪你系列又来啦.剑英是一个有大爱的人,热爱每一个程序员,尤其是年轻漂亮的女程序.最近组织朋友们玩了一次即兴团体诗创作,无论怎么开头,都会走上厕所文化的道路.尤其是卫生纸的出镜率极高.这让我对这个群体的心理健康有了深深的担忧,任重而道远啊.让我们一起响应暴走九月不撸,不撸不撸,九月我不撸. 你可能已经看过了无数的Helloworld,是什么感觉呢?兴奋,失望,满足?还是已经想不起来什么感觉了?我已

辛巴学院-Unity-剑英陪你零基础学c#系列(一)Hello World

这还是草稿 辛巴学院:正大光明的不务正业.辛巴学院:攻城狮与荣耀石. 剑英陪你系列又来啦.剑英是一个有大爱的人,热爱每一个程序员,尤其是年轻漂亮的女程序.最近组织朋友们玩了一次即兴团体诗创作,无论怎么开头,都会走上厕所文化的道路.尤其是卫生纸的出镜率极高.这让我对这个群体的心理健康有了深深的担忧,任重而道远啊.让我们一起响应暴走九月不撸,不撸不撸,九月我不撸. 从Helloworld开始 你可能已经看过了无数的Helloworld,是什么感觉呢?兴奋,失望,满足?还是已经想不起来什么感觉了?我已

辛巴学院-Unity-剑英陪你零基础学c#系列(四)函数和封装

这还是草稿 ? 辛巴学院:正大光明的不务正业. 国庆长假结束了,我的心情是这样的: 你总是起不早,起不早独自一个人沉睡到天亮你无怨无悔的梦着那副本我知道你根本就不想上班你总是起不早,起不早放假总是短暂,上班太难请个病假,再睡上一天 今天我们聊c#的函数和封装 这个话题其实你有无数的资料,每个写过代码,没写过代码的人,都知道这些玩意.我也没有太多新奇的角度,先记住这一点 这不是数学,这不是数学,这不是数学. 我接触最早的语言是basic,那个时候函数还没有那么深入人心,不是visual basic

辛巴学院-Unity-剑英陪你零基础学c#系列(三)计算与类型

草稿中,完稿可以问我要doc原稿,不要转草稿 ? 辛巴学院:正大光明的不务正业. 中秋节快乐,每逢佳节倍思亲,尤其是那素未谋面的老婆,对吧,屌丝们. ? 今天我们来探索一下C#里面奇怪的计算,奇怪的类型. 奇怪的计算 当我刚刚接触计算机编程的时候,一切在我看来都是奇怪的. i++i=i+1i==i+1 这都是些什么鬼? 机器语言是图灵机模式的,那玩意不是人类语言,是关于操作寄存器的. 附:图灵机视频地址测试版: http://v.youku.com/v_show/id_XMTM0MDg0NjUx

剑英陪你玩转图形学 (四)流光效果(草稿)

很多同学对shader的了解简直令人发指,不得不承认我之前的文章很失败,没有达到指引效果. 经过我深深的反思,本系列设定起点还是太高,仅仅着眼于本质不能让很多同学收获学习图形学的实效. 我已经反省过了,让这个系列更贴近初学者,你跟随着这篇东西去一步步操作,就能得到一些实际可用的Shader. 还是使用Unity作为测试工具,因为用他的人的确很多. 在这个小白丛生的圈子里说到图形学,大部分人都告诉你shader,我对此早已吐槽无力. 也只好放弃.随他去吧.该说的话之前的系列已经讲的很多,现在就从一

剑英陪你玩转图形学(一)

这是一个尝试的系列,突发奇想觉得有声音可能会更有趣,这个系列Blog都会出视频有声版 大家好,我叫李剑英. 我姓李,又总是一副屌丝的样子,圈内人称李总. 不要百度搜索我的名字,你搜不到,我说的是朋友圈. ? ? 快速提高班 现在教大家一些快速提高自己业务(zhuangbi)水平的方法. 要提高自己的业务水平,第一个要诀是:忍.等到别人问你问题,不要主动去说. 问:图形学中什么最重要 标准答案:首先得轻叹一口气,注意轻叹一口气的时机非常重要,在思考两到三秒后(其实是故作姿态),然后叹一口气. 哎,

剑英陪你玩转图形学(一)打通任督二脉

1. 这是一个尝试的系列,突发奇想觉得有声音可能会更有趣,这个系列Blog都会出视频有声版. 这个系列主要是为了玩一玩代码. 我觉得呢,写程序是一件很有意思的事情,没有必要搞得那么苦大仇深.但是,却总有那么一些人.那么一些资料,非要把写代码搞成一件高山仰止的事情,搞成是非精英屌丝不可完成的任务.搞成是非要你上辈子就注定是个屌丝,这辈子投胎转世还是个屌丝才能够从事的职业. 简单的事情复杂化,具体的东西抽象化,抽象的东西再把它神化.这就是很多资料对你所做的事,他们,只是把你的大脑搞乱,然后让你觉得,

剑英陪你玩转图形学 (二)

开篇废话 今天看到蛮牛把干货区放上了主页,居然还能看到我的帖子,让我很不好意思. 各位同学对不起,我来晚了. 今天的李总是因为姓李,又总是迟到,所以叫做李总. ? 今天还是讲图形学,第一弹没有把事情讲完,仅仅是开了一个头.你不会是以为一次就能讲完吧.我这么天才的人都搞了好多年,讲一次得吃掉我一年的老本. 为人不识武藤....,骇骇,最近好像扫黄,不能说这个,大家都知道,关键是不搞软渲染,你就枉然了.软渲染我们上次已经玩过了,知道所以然,了解渲染是怎么一件事,目标就已经达到了. 渲染这条路上还有很

剑英陪你玩转图形学(五)focus(草稿)

今天介绍一个小效果 新手引导的时候,我们会需要一种全屏幕黑掉,只有一个区域亮起的效果 废话不多说,先看效果 http://lightszero.github.io/focuswin/focuswin.html ? 一.首先让我们来建立基本的测试环境 建立两个Quad 把Camera配置成这样 把Quad配置成这样 把QuadOver配置成这样 这时候Quad就在屏幕中心,和屏幕看起来一样高 看起来是这样的 制作这样一张png图片 再找张背景图, 然后给背景图一个unlit材质,给quad 给qu