用代码来做判断(一)

计算机的一个主要责任就是要确定在特定的情况要保证发生特定的事。这就是电脑无论在运行应用还是游戏都会做的事。我们编写代码来确保我们的游戏对象在一时刻会做一个正确的事,并且行为会随着状况而更改。一个代码应该可以察觉到状况的改变并且为新的状况做好准备。这个会举一写状况改变和代码发现他们的例子。他会确定下一步代码何时执行。

在本章我们将会讨论:

  • if语句
  • 检查多种状况
  • if-else语句
  • 用户变更输入状况
  • 遍历数组,集合和字典中的数据

让我们开始吧

使用if语句来测试条件

If,if,if. 如果我这么做,如果我那么做,如果这个发生了……

当然,你一生之中在为你的生活下着种种决定。我们一直在做这样的事,并且很少给下决定一个过程。就像我们每天做的一些决定,只是让他们在脑海中过一遍。Unity并没有人类那么diao的功能,所以我们需要把这些写下来,引导Unity为我们做决定。因为大多数人从来都不会把自己做决定的过程写下来,所以我们会从一个初学者的身份开始,尽管这非常简单。

并且if是游戏对象最常用的逻辑判断工具。Data used to make these decisions is the information usually stored in some variables。在i语句中你可能会经常看到:如果这个状况出现了,那么我就要执行我的代码。

实验if判断的真假

一个简单的逻辑判断往往会有真假的概念:

  • 用户摁了按钮
  • 温度很低
  • 这个角色死了
  • 这熊在树洞里拉了一大坨翔!

这些简单的问题一般都会由人类回答,通常伴随着肯定与否定。在Unity中,答案会是true或者false。比如“这熊在树洞里拉了一大坨翔”就是true或者false。

动手时间——创建一对儿if语句

if语句演示了判断括号内条件是true还是false的过程。

  1. 修改LearningScript
  2. 保存文件
  3. 在Unity中,点击Play
LearningScript

发生了什么?

这里是Console中的输出:

Console

代码分析:

  • 第八行代码如下:
    bool theBearMadeBigPottyInTheWoods = true;
    生命了一个布尔类型的变量并分配给它true

  • 第十行代码如下:
    if( theBearMadeBigPottyInTheWoods )
    一个if语句会尝试去判断括号内的内容是true还是false
    变量theBearMadeBigPottyInTheWoods存储着true值,因此,第11至13行的代码就会执行,就像Console图中的那样。

使用非符号来改变判断条件

你可能真在观察这个符号,非符号。它在代码中被表现为一个叹号。他会将判断条件的真假做改变。

  • 第十五行的代码如下:
    theBearMadeBigPottyInTheWoods = false;
    false分配给了theBearMadeBigPottyInTheWoods

  • 第十七行代码如下:
    if( ! theBearMadeBigPottyInTheWoods)
    这是另一个if语句,但是这次theBearMadeBigPottyInTheWoods存放的是false。
    然而,变量的最开头有一个非符号,请看截图中红色箭头所指的地方。
    这意味着条件不是false,当然就是true了。所以,第18行至20行的代码就会被执行,就像Console截图中的那样。

我想我能想象到你的问题,为什么不只判断true?当你在写if语句的时候就会发现,你经常会在判断条件是false的情况下去进行判断。你需要使你的代码在这两种状况下执行。比如,你可能会在用户不去按某个按钮的时候才执行某些代码。

带if语句中判断多个条件

有些时候你希望在你代码执行之前通过多个逻辑判断。这非常简单,这里有另外两个你可以使用的符号。

  • 与:会写作&&来连接两个条件。
  • 或:会写作||来连接两个条件。

动手时间——创建拥有多个条件的if语句

  1. 修改LearningScript
  2. 保存文件
  3. 在Unity中,点击Play
LearningScript

注意第11行使用的与符号,16行使用的或符号。

发生了什么?

这里是Console中的输出:

Console

代码分析:

  • 第八行的代码:
    bool theBearMadeBigPottyInTheWoods = true;
    true分配给了theBearMadeBigPottyInTheWoods

  • 第九行的代码:
    int temperature = 40;
    声明了一个值为40的int型变量。

  • 第十一行的代码:
    if(temperature >= 35 && theBearMadeBigPottyInTheWoods)
    这个if语句回来检查这个两个条件是否均为true
    第一个条件是检测temperature是不是大于等于35。
    theBearMadeBigPottyInTheWoods中存储的是true。因此,两个条件均是正确的,代码可以继续执行。

  • 第十六行的代码:
    if(temperature >= 35 || theBearMadeBigPottyInTheWoods)
    这个if语句用来检测这两个条件中是否至少有一个为true
    我们已经知道这俩条件都是正确的,所以代码会继续执行。

Have a go hero——改变temperature中的值

尝试将temperature修改至30。这样的话,只有一个if语句会是true:

Console

代码分析如下:

  • 第十一行的代码:
    if(temperature >= 35 && theBearMadeBigPottyInTheWoods)
    只有一个条件是正确的,因为30并不大于等于35,因此第一个条件是错误的。除非两个条件均为正确的,代码才会执行。

  • 第十六行的代码:
    if(temperature >= 35 || theBearMadeBigPottyInTheWoods)
    只有一个条件是正确的。
    因为30并不大于等于35,因此第一个条件是错误的。
    第二个条件是正确的。
    只要有一个条件为正确就会通过,所以没有任何改变,代码仍然会运行。

Have a go hero——改变theBearMadeBigPottyInTheWoods内的值

现在,改变theBearMadeBigPottyInTheWoods内的值为false。现在你可以看到,没有if语句会执行了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,357评论 0 17
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • 使用if-else语句来执行不同的代码 至今为止,我们所见到的if语句都需要判断条件为true的时候才会去执行代码...
    这双鞋好贵阅读 386评论 0 1
  • Isotonix OPC-3 是一种等渗压营养补充品,由葡萄籽、红酒和松树皮萃取物融合制成。等渗补充剂与眼泪和血浆...
    PrincessSnowyNA阅读 9,329评论 0 0
  • 董小姐最近有点郁闷,她掰着手指头算了算,今年已经被三个男生拒绝过了,星座运势上明明说她今年的桃花运一直会很旺盛,怎...
    越王姓李阅读 1,105评论 7 21