粉丝410获赞1015
哈喽,大家好,我们今天来介绍一本游戏入门的书籍,这就是由清华大学出版社出版的 unity 和 c sharp 游戏编程入门第五版。 一本 unity 入门的书籍能够出版到第五版,应该来说他是一本比较经典的书籍,看名称你可能认为他只是一本 unity 的入门书籍,实际上他也是一本 c sharp 零门槛的入门书籍,甚至可以认为是一本零门槛的游戏编程或者编程入门的书籍。 如果你没有任何的编程基础,这本书也是适合你的。我们以前学一种编程语言的时候,总是以控制台为输出,通过一些字不串模拟正在发生的事情。而这本书就更直接啦,直接通过 unity, 在一个游戏的三维环境里面去展示你每一行代码的效果,这样对于学习者来说,对于学员来说, 理解起来会更轻松。虽然这是一本零基础要求的入门书籍,但它包含的内容还是挺多的。我们可以通过简单易懂的步骤和学习视力来掌握 c sharp 的编程基础,我们也可以通过这本书掌握如何在 unity 中创建和应用脚本。 脚本呢,都是用 c sharp 写的,我们用 c sharp 实现诸如角色控制、射击等游戏的基本机制。 我们还要对面相对象进行一些讨论,要理解接口抽象类的概念。对于 c sharp 的一些核心概念,比如说对战、对列、异常错误处理等都也进行了一些讨论。 对于我们的敌人 enemy, 我们还施加了 ai 的操作,让他可以在我们的这个游戏环境里面进行巡逻,他也可以判断这块地 啊,他的高度,他自己能不能上去。总之,麻雀虽小,五脏俱全。这是一个比较完整的小例子,代码量其实也不小,我们来看一下, 我们现在看到的是位置。 studio 在 unit 开发的时候呢,我们都是在这里面进行脚本的编写,一共大概有十几个原文件,那每个原文件多的可能有个小一百行,少的呢,也就十几二十行。对于一个初学者来说,这样的一个规模应该是比较合适的。 关于 unity 或者是 unreal 的书籍,我们最害怕的就是版本是不是比较老,这本书的版本是二零二零, 所以还可以,我也试了一下,只是有一个地方他写的是 unity, 也就菜单啊,他是想在 unity 下面去找 pre ferrance, 这是书的第十五页。那么这个菜单项呢?现在已经放到了啊 edit 里面。除此之外,这本书我操作下来是比较流畅的,所以不用担心版本不兼容的问题。 最后我觉得有必要向大家强调一下,这是一本很好的编程入门书籍,他对于我们编程中遇到的很多概念都有很详细的描述。比如说他会告诉你方法和函数这两个名词其实是可以互换的,方法就是 函数,函数就是方法。那到底什么是方法呢?他会从概念上告诉你,方法是应用程序内部各项业务运行的方式。从技术上来说呢,方法是包含可执行语句的代码快,那从实践上来说,方法是每次执行时都会运行的一组指令的 戏,当然他讲的会比这个更详细,他会展开再进行讨论。你可能会有一个疑虑,这样一本介绍入门的书籍还包含了这么多内容,一定会很厚吧?读起来会很吃力,实际上他只有一百三十六页, 读起来非常轻松。总之这是一本非常好的入门书籍,希望大家能够从中学到自己想要的知识。 ok。
后面这几个视频呢,我们讲一下二 d 游戏的开发,嗯,那么我们核心呢还是让大家理解一下,在在制作二 d 的这个动画的时候,通过控制鼠标和键盘和二 d 的这些 啊,他里头的这些小的图片是怎么构成游戏的这些元素的啊,以及怎么通过键盘来 和动画相结合,让里头的人物驱动起来。那么这里头呃这后面这几个视频,我们就来给大家介绍一下这里面的一些呃基本工具的使用方法。那么首先我们在建立这个尤尼特二地游戏的时候呢啊,在 因为哈北头呢,我们选择二 d 游戏,然后呢项目名称呢,我们嗯起一个啊,嗯 二连,哎没神。那么可以看到在二 d 游戏建立以后,他和我们三 d 的一个区别的就是 啊,在三 d 以后呢,我们这个会有一个三维的空间,是一个平面,是一个呃水平放置的一个平面,然后我们可以在三维当中 拖拽一些物体上去,那么在二弟的游戏里头呢,他会直接给我们一个呃一个正对着我们的一个平面啊,我们把这地方这二弟呢 呃取消以后显示的这个二 d, 如果我们点选的时候就是二 d 的这个显示方式,那么也就是说我们这个二 d 游戏呢,就全部是在我们这样的一个平面啊,类似于我们电视机上面的一个平面上面来展示我们的游戏和要显示内容。 当我取消二 d 以后呢,就进入到三 d 的这个场景当中啊,那么我们拖拽和旋转呢都可以是原来的三 d 情况啊,那么点击二 d 以后,再点击二 d 的情况下,我们再来旋转这个场景呢啊, 那么他是就没有办法旋转了啊,那么那我们看一下,在二 d 生成的这个场景当中,他默认已经生成出来了一个开幕了啊,在这个开幕了里头,我们来看一下他有哪些内容啊?我们看在这里头开幕的这个,首先 镜里头呢啊,有一个啊,叫奥哦 sorry faker, 也就是我们在三维显示的时候用的是 partte, 那么在二维的时候呢,我们用的是振焦投影啊,这个我们在同音学里同音学这课程当中学习过,那么这地方还有一个变量呢,是赛字啊,这地方设置的是五 啊,这个五的含义什么呢?我们来看一下我们新建一个空的游戏体啊,在空的游戏体里头呢,我们看他实际上新建的时候是在这个呃,坐标的这个圆点啊,中心啊,我们把它可以啊,坐标的圆点中心。 那么当我点击拖拽这个空游戏体的时候,当我往上移的时候呢,我们可以看 呃,他在上面歪的这个轴上面呢,最远可以拖拽到五这个单位啊,往下 最远是头拽到腹啊,那么朝右边的这个呢,实际上就是和我你设定的这个窗口的这个 比例是有关系的啊,那么因此这个开幕了这地方的这个五呢,实际上就是我们这个啊,二 d 游戏所呈现的这个大小的像最短的这个边的单位啊,向上上下的这个五个单位啊, 好,接下来我们呃在在这个场景当中呢,我们需要使用一些小的图片作为我们的游戏精灵, 那么在使用这个游戏精灵的时候,我们去到 fco 当上面呢,我们来下载一些,嗯,素材来的 stole 以后呢,我们啊搜索 啊一个素材叫做台铃 rpg, 不好意思 啊,那么第一个这个呢,就是我们啊啊需要的这个素材,那么点击这个素材 这个素材之后呢,我们可以看到他呢是免费的,呃,实际上在赛特斯套里头呢,关于二弟的这个游戏的这个 一些游戏人物啊,一些道具啊,有很多的这个资源啊,比三弟的要多很多啊,那么大家在这节课呢,我们学习使用这个素材来做, 那么后期你自己按照你自己的需要呢,可以搜索很多呃,和你自己项目和游戏你设定的游戏情节相关的一些素材, 然后把它导入到项目当中去。那么这地方呢,你就点击这个啊,音炮层啊,把这个素材呢就可以全部啊导入到下载,并导入到我们的工程当中来, 那么这里头的这素材啊,包括很多内容,我们后面再一一来讲,那么点击这个音炮就可以导导入进来。 好,接下来我们,呃为了让我们浏览方便啊,我们这地方,嗯需要,呃就是按照你自己的习惯,你可以把这个当前的这个啊,因为我们这节课很多内容是需要从素材 里头进行图片的一些设置啊,所以放到这个下面来进行处理的话,不是很方便。那么这地方呢,你可以把它这个葡萄摘开呢,把它可以进行拖拽啊,拖拽放到我们这个还有锐体这个 窗口的下边,然后这地方点击啊右下角,然后选择玩 call, 我们的要让他只在这一个啊,列表,只在一列当中把所有的资源就可以陈列出来,这样的话我们在后面进行处理的时候,可能会使用起来可能会更得心应手。 好,我们来看阿图沃尔克的这个里头呢,有很多的这个呃游戏的资源,那么首先 yy 们的这个里头呢,有有一些就是我们来看看,在这地方有一些这背景,还有一些路径上的一些素材,那么 还有一些啊,这是一些小的这个布史啊, rap 啊, 吹啊这些内容啊,到时候可以可以再按照你的游戏剧情来添加。那么我们这节课呢,我们主要是对于这个 spa prat 啊,也就是游戏的这些人物的一个使用,那么这地方我们点击黑润的就是游戏的主角,那么在游戏主角里头呢,在这个素材里头呢,提供了提供给我们的有这个游戏人物的这个泰亚泰亚克啊,攻击,下面呢,有啊,在 前向的攻击啊,我们来看右边的这个右下角这个地方啊,当我点击这几张图片的时候呢,实际上你就可以看到一个小 小的一个动画啊,那么他这是背朝我们的一个攻击,攻击情况啊,然后这地方还有个爱豆啊,就是我们这个游戏人物他 静止啊,休息的时候啊,那么他会一个默认的,也就是游戏人物默认的一个运动形式一张照片啊,那么其他的呢,还有这个游戏人物的移动啊,在朝左朝右啊的一些移动的情况啊,我们来看一下啊, 好,我们选一张图片,我们把它在我们的呃文件夹当中打开。啊,那么在文件夹当中打开我们来看,嗯,实际上这地方他默认添加了一些其他的 和 uni 相关的一些啊,因为你只要导入到这个 unit 里头呢,他就会添加一些新的这个 啊,和这个游戏属性相关的这个 mate, 这个文件我们来看第一个,第二个,第三个,可以看到这是一连续的一些动画 啊,这是背朝我们的,那么从前方的呢?他有面朝我们的,对吧?啊,所以这个游戏呢,主要是一个从上到下的这种角色扮演类的游戏。好, 然后我们这节课呢,就是把这他的这些离散的这些图片呢?我们怎么让 u 通过英文的这个 id miss id mix 呢?把它。
今天呢,我们会利用十分钟的时间来制作下面这个二维卷轴游戏场景。我们会使用 unt 游戏引擎和一个叫做 twelve game kit 的开发包。如果大家计算机上还没有安装 unt 游戏引擎的话,大家可以按照我的步骤来完成安装。 首先,我们需要安装一个叫做 u t hop 的东西, u t hop 可以看作是 u t 引擎的启动器, 他是用的团队最近分离出来的一个功能,用来管理计算机上不同版本的应用体引擎以及用体项目。当然,你可以选择不安装用体啊,直接下载用体引擎的离线安装包。 不过因为我经常会在应用题的多个版本之间做切换,并且安装下载都是一键自动化的,使用它确实也帮我节省了不少的时间。应用题还不安装非常简单,大家可以直接从官网上下载安装。我将下载地址 粘贴在屏幕的下方。安装完毕后,桌面上会多出来一个 untip 的图标,我们双击启动它,并点击窗口左边的安装按钮。正如屏幕上提示,因为计算机上还没安装任何 untip 的版本,我们可以点击右上方添加按钮,并选择最上方的最新版本。 你们看到的版本可能跟我的有所不同, ut 每个月都会发布一个新版本,版本之间的区别很小,通常只是 bug 的修复和一些小功能加入。接下来,我们点击右下方的下一步按钮,屏幕上会要求你勾选需要安装的组件。在这里我们一个都不用勾选, 因为对于游戏的开发和学习来说,安装应用体引擎的主体就够用了。最后我们点击右下方的完成按钮,这时计算机会自动下载并安装应用体引擎。整个安装过程差不多五到十分钟,具体的时间呢, 取决于你电脑的配置。大家可以将安装界面最小化,喝咖啡、看视频等 unt 安装完毕后再回来。 ut 安装完毕后,不同版本的 ut 引擎会以卡片形式显示在窗口中。这时候我们可以点击项目按钮,并点击右上方的新建按钮。创建一个项目。 项目又常常称之为工程 project, 它是所有美术资源场景代码保存的地方,我们可以看作是游戏的源代码。在新弹出窗口中,我们选择 to d, 因为我们要制作游戏是一个二维卷轴游戏应用题,同时支持二维和三维游戏的开发。在这里我们只是告诉应用题,将我们可能用到的所有工具都提前准备好,方便我们的使用。接下来,我们将右边的项目名称改为 my to the game, 当然你可以改为自己喜欢 更有意义的名称。最后点击蓝色的创建按钮,新建我们的工程运体会进行短暂的配置。最后打开运体游戏引擎的主界面,这个界面又称之为编辑器艾特,因为所有场景美术资源的编辑,游戏中的各种选项都需要在这里完成。 我们知道 ut 自身提供了许多游戏开发的必要功能,但是让 ut 更加强大的原因是, ut 有着非常活跃的社区游戏开发者爱好者会在一个叫做 sdoor 的商店中上传各种游戏资源、脚本以及扩展包。 ssdoor 上的许多资源是付费的, 但也少不了许多免费的优质资源。在这里,我们需要使用一个叫做 tv game kit, 它是云体官方提供的专门用于制作二维游戏的开发方。它大大简化了 游戏的开发流程,非常适合于新手入门和学习。我们可以在这里点击 sdoor 的选项卡,并在搜索框中输入 to the game kit, 并选择搜索出来的第一个结果,然后点击蓝色的下载按钮,如果你还没有登录音乐体引擎的话,音乐体会在这里弹出登录框。 我强烈建议大家自己注册一个 ut 账号, ut 对个人的学习和开发是免费的,使用账号也可以访问出商店之外的其他功能,比如团队协作等等。下载完毕后,我们可以点击蓝色的导入按钮,将这个开发包加入我们的工程。 屏幕上会提示导入操作可能会覆盖原有的工程设置,因为我们是新创建的空工程,因此我们可以直接忽略这个警告。在星探处窗口中会列出开发包中的所有文件, 我们继续点击下方的导入按钮即可。开发包导入完毕后,在这里会多出来一个 to the gamecat 的目录。屏幕下方这个窗口会显示工程中的所有文件,这包括你创建的场景、图片、思维模型以及脚本代码。我们可以把它理解为一个文件浏览器即可。 另外,屏幕上放菜单栏中会多出来一个按钮, kittos, 与这个插件相关的功能都可以在这里访问。 我们首先点击这个菜单,并选择创建一个新场景。场景名称我们暂时不需要修改,直接点击创建即可。这时候音乐体会我们创建一个默认的场景,或者我们叫他关卡。 这里包含一个人物角色和一个简陋的地图。我们来介绍一下屏幕中间的两个窗口。左边画有网格的是一个用来编辑场景的窗 口,我们可以在这里选择场景中的物体,移动他们的位置等等。右边是游戏预览窗口,也就是游戏运行时将要在屏幕中显示的内容。可以看到应用题默认为我们选择了十六比九的长宽比。我们暂时不需要去修改它, 因为大多数手机和计算机的屏幕常关闭都是这个数字。我们可以点击屏幕上方三角形按钮运行 to the game kit 为我们创建的默认场景。 我们可以通过 ad 键作为移动, s 键下蹲空格键,跳跃, k 键进站攻击, o 键子弹攻击,这些都是 to the game kid 为我们准备好的,在视频下方官方文档中也有详细说明。 接下来我们来对这个简单的观察做一些修改。如果在屏幕的右方你没有看到一个叫做 tall palet 的窗口,可以点击菜单栏中的窗口, 然后选择 to the tail。 palette。 tail 在用中是瓷砖的意思,用在二维游戏的地图制作中。大家常常将场景划分成一个个小网格,然后利用一种铺瓷砖的方法来创建地图。这种方法的优点自然是速度快,方便。 另外,这功能是应用题自建的,并不是 to the game kit 这开发包提供的。因此即使我们没有使用其他任何开发包,也可以使用这个功能。叉 opat 窗口打开后,我们发现他默认我们显示两个砖块, 一个是光秃秃泥土,一个是绿色草坪。我们随便选择一个砖块,并在左边场景编辑窗口中按自己的喜好铺上砖块。砖块会自动和背景的网格线对齐,并且砖块之间会自动连接。我们甚至可以创建不同高度的 平台。砖块之间呢,并不会产生任何缝隙,因为这个砖块资源是 to the game kid 事先设计好的,设计人员已经事先考虑到这一点。随后我们可以点击运行按钮,测试刚我们创建的地图。 接下来我们在游戏中加入怪物角色,继续丰富我们的游戏逻辑。这时候我们首先要利用屏幕下方的 project 窗口,也就是我们之前提到的运题自建的文件管理器, 我们需要通过它找到怪物的资源。首先我们打开 to the game kit, 然后选择 prefabs。 prefab 这个词在 unity 中经常会看到,它的中文意思是预设,通常指是那些已经为你创建好的,已经有一定功能的可以直接使用的 东西,比如怪物,人物角色、场景、用户界面中的按钮等等。总之你可以直接拿来使用就对了。在 prefab 的目录下有一个叫做 enemy 的目录, 我们打开它,看到这里有两个怪物, trumper 和 speeder。 在应用题中的很多资源,我们可以通过字面意思来猜测它有什么功能。 trumper, 咀嚼者,听起来就是要吃人的怪物。 speeder, 吐口水的怪物。好吧,听起来这两个怪物区别像是,第一个怪物进展攻击, 第二个怪物远程吐口水攻击这里我们直接拖拽第一个怪物到左边的场景编辑窗口。我们点击屏幕上方三角形按钮,测试一下我们修改后场景。当我们靠近怪物时,怪物会向你攻击,屏幕左上方的小红心也会减少一格。 我们退出游戏模式,继续对怪物的属性进行一些调整。 unity 右方这个窗口, inspect 监视器会显示你选中物体的属性。比如我们可以在场景面器中用左键选择不同的物体, 可以看到这点内容也会随之改变。这里有个非常实用的技巧,通常在一个复杂场景内,不同的物体会重叠在一起,并且还有一些看不见的功能。物体,比如声音和一些后期处理的特效。 直接通过鼠标左键通常没有办法正确的选中。你想要选中物体,于是我们可以使用屏幕最左边的一个称作 hierarchy 的窗口。 hiverke 在英文中有着层次结构的意思,这窗口中会列出场景中存在所有物体,看见的,看不见的,甚至于屏幕之外的物体都会在这里显示出 出来。我们可以双击这里的 chomper, 选中并聚焦这个物体。右边的 inspect 中也会随之列举出这个物体的属性。可以看到这里显示的属性可以说是琳琅满目,异常复杂。 我们再仔细看这里,属性又可以被折叠成不同种类, transform, sprite, renderer, animator, box, clutter to the, rigid, body to the 等等等等。每一个分类都扮演着非常重要的角色, 比如 transform 代表这物体在场景中位置,我们甚至可以修改这里的数值来移动这个物体。 sprite trainer 是用来在屏幕上渲染或者显示这个物体用的。如果我们直接把这里的小勾勾去掉,这物体就会直接从屏幕上消失。另外,这里有每一个分类,在应用题中被称之为 component 部件, 我们甚至可以删掉或者加入新的 component。 现在我们只需要把目光聚焦在这个叫做 enemy behavior component 上就好了。敌人行为,从他名字上可以看出,这是一个用来设置怪物属性的部件。比如这里有一个 speed 的属性, 用来设置怪物移动的速度。我们可以拖拽这里来修改这个数字,或者直接用键盘将这个数字改为三。接下来我们点击运行按钮测试一下,可以看到怪物的移动速度确实提高了许多。 同时我们可以修改这里的 view field view 来修改怪物的可视区域。屏幕左方的绿色区域代表怪物能够侦测到范围,只有你出现在这区域中,怪物才会向你跑来并对你发动攻击。我们可以点击运行按钮测试一下我们 修改后逻辑。这时候如果我们站在怪物的身后,他是不会发现我们的,只有等怪物转身时,他才会向我们跑来并发动攻击。 在这期视频中呢,我没有使用任何一行代码就已经能够做出像模像样的二维卷轴游戏其实还有许多非常实用的功能,我们会在之后视频中向大家陆续介绍。
好,我们先来讲一下这个五点一点三小节,这个内容就是锁定时人物移动的限制,然后这块内容就是我们要对这个 player 它在锁定模式下它的 w、 a、 s、 d 输入进行限制。 然后具体而言就是我们能保证当前这个玩家他只能在前后或左右进行移动,就是比如说当前玩家 现在我们画一个轴,这边是正字轴,然后往下的话是一个正的一个 x 轴,然后这是玩家当前他所处的位置,他当前先获得了一个物体之后,这个时候他玩家的面相是朝向这边的, 然后他这个时候可以直接操作就是往前进行移动或者往后进行移动,而这个时候他不能带着这个 物体直接旋转到往这边,这个是不允许的,然后同时也不能直接运行到往下边,就直接旋转到往下面,这个也是不允许的。然后同时在他往前往后的这个运动当中,他也会有些限制,就是他现在往前运动,这个是很正常的,就是往前运动,但是他往后运动的时候, 这个时候玩家的面向方向依然是朝这边,他因为他现在是你可以想象是一个人,他现在去拉着一个箱子,他先拉这个箱子,然后往这边走的时候,他人依然是面向这边的,他是把他往后拉。 对,因此我们在这边还要进行一个判断,就是当前玩家他的一个面相,然后我们要根据他的面相来再执行当前物体他的一个位移,所以这是这块一个人物移动限制他的一个代码。对,然后这块的一个实线, 他大致的一个逻辑其实就是他会在当前如果是锁定运动下的这个状态的话,这个时候还会判断当前他的一个就是他还没有输入, 然后他上一次输入就是我现在这个物体,他现在锁定了一个物体,他的上一次输入是在面向哪个方向,也就是当前玩家他当前面向的方向是在哪里?如果当前面向的方向是在比如说 four word 的时候, 那这个时候还会真的 forward, 然后来进行一些限制,让他只能 return, 可能是 forward, 可能是 back, 就只能是向前或向后两种状态,然后停,然后同时如果说当前 这一次输入玩家他输入的是 d, 也是表示也是往前的时候,那这个时候 is forward, 先这个代码他就表示是等于帧, 对,就表示他这次移动他的玩家面相依然是真的,他依然是和上一次表保持同一个面相。然后如果说他这一次他允许在这两个方上进移动,就是一个是 forward, 一个是 back, 而他这一次输入是呃 a, 它就表示是往这边走,那这个时候它就会 return 一个 back, 就 return 一个 back, 然后表示它这一次移动是往后移动,但是它 is for what, 就它现在是否向前这个是为假的。 对,现在这个代码大概逻辑就这样子,你听起来表的这个概念化没有关系,我们先来写一下这个代码, 呃,然后我们先来写一下这个代码,然后这里的话我们就是先进到 play action 里面,然后我们来写下这个 move in move input 先这个代码, 然后这块的话我们就是先来写一个 switch, 依据原它这个情况,其实对称就是四种情况,对,然后这边的话就是对当前的一个呃,它上一次的一个 player 的一个移动方向来进行一个判断, 就是 case, 如果说它上一次移动是呃向前的,然后我们分别会执行一些操作。 这边我们先来进行一下判断,上一针的时候,尤其是往前进运动的,那这个时候这一针他只能往前或往后,那这个时候我们就可以对他的两个音魄的来进行一个判断,就是分别是音魄的点 get k e y get kit, 然后荡, 它可以为往前就是 k e y k 扣的点地,对,然后如果它是往前的时候,那这个时候它就直接呃,它就可以捋腾性俯卧的, 就是现在这个现在这个 f 啊,它就可以返回现在这个点 for what 现在这个代码 啊?不好意思,这样,我不是 return 的,现在这样它就是可以把现这个变量把它给呃改成是呃 forward f o r w a r d 对,改成改成是这个 呃,其实这个地方其实他也不需要进行更改这个代码,呃其实也不需要进行更改,因为他现在如果是 four word, 因为在推动他的锁定一个物体时候,这个时候其实他的呃人物面相其实不会变化的,他就是一直只能往前走 或者一直往后走,但他的面相一直是就他现在那个面相一直都是朝一个方向的,那这个时候其实他呃不需要进行这个设置, 对,这个时候是不需要的,但他现在需要多的一个东西是要在这里面来新增加上一个布尔值,然后这个布尔值就是当前他的一个 is forward, 说他现在是否是面向是朝前的,这个是要新加入的一个内容,然后这块的话也要对应的加入一个东西,并且他还得是, 呃,还得是用羽绒参数,羽绒类型参数,这里还要给它写上对应的一个 a, e, f, 对这个内容, 然后这里的话我们可以在这里再新上一个布尔制偏 i v a t e, 然后 b o l, 然后现在它这个 is f y 大 v r d, 对,然后它默认是等于真的 好,然后在这里面我们继续写,然后现在这个样,我先把这个参数给他填进来, 在这个地方 好,然后在这个节目里面的话,就是我们会对这个 is for 来进行一个更改。 如果说他当前面相是 forever 的时候,然后同时他现在这个 input 点 guid key, 当他现在是地地键,就是表示往前移动,那这个时候我们就可以把它给设为是针对,然后我们就可以返回,返回一个针, 这个 break 是不需要写的。然后如果说它现在按下的是 a 键的时候,它表示它是往后走,但它面向是不变的,我们就把这个 is four 给它改成是假。 对,所以这块就是第一个 case 就写好了,然后我们现在写啊,第二个 case 就是当他的一个方向是 back 的时候, b a c, k 的时候,那这个时候他就是啊,这里不好意思,还没有,还没有给他改回来 a 和 d, 那他这块就是让他 给反过来这个是 a, 这个是 d, 它输入为 d 的时候,这个时候它 is for 是为甲,如果说它现在这个是 a 的时候,那它这个就是为真。 对,然后同理还有另外两种状态的这个书写,我们可以在这里写一个 case。 对,当它这次是 left 的时候,它先是往左的时候,那这个时候就是我们按下 w 的时候,那它就是为帧。 如果他当前按下的是 s 的时候,然后这个时候他意思 fore 就是为甲。对,然后另外还有的代码就是在 在这里还会有一个,如果他当前是向右移动的时候,那这个时候他按下 w 才有喜欢反方向走的,那他这个 is for 这样就可以是为假。然后如果说他按下的是 s 的时候,那这个时候他 is for 就是为真, 对,所以这个是他的对这四种状态的一个判断,对,然后他们分别会对个 is for 来进行一个更改,改为真或是假,然后这个更改他的作用是什么?就在这个地方 就是如果说他现在这个面相把这个变量给他设备是假的时候,那这个时候我们在这里执行运动的时候,我们就会有一些对应的变化。就在这个地方如果现在这样我们会传入一个,我们会 传入进来一个不尔纸,不尔纸就 is forward。 如果现在这个 is for word, 它是等于等于真的时候,那这个时候它就这个可以给它删掉,它就正常的去执行这个代码。 然后但是如果他现在这个 is for 是为假的时候,那也表示他现在是面相是不更改,但是要往他的反方向进行移动,这就可以给他写一个,如果说他为假的时候,把这个代码给他抄进来, 把它这个这个地方这个代码速度变成符号,就表示它往后走,大家的旋转是没有变化的,依然是使用这个 player rotate forward, 而 player rotate forward 是根据他当 一个方向来的,他方向没有变化,但是他的移动的一个方向变了,就是根据现在这个富豪来的,对,所以这又是这个代码他的一个作用。然后我们现在在这里的话,还要把这个给他加上这个 is forward 给他加上, 对,然后把这里也给他对齐一下。好,然后我们现在可以来测试一下这个代码。 好,然后我们现在可以回到场景里面,然后来按一下这个执行, 我们现在可以往前进行移动,然后我们先按住组件,然后这个时候,呃,很不幸代码出现了一些小问题,然后我们还是先去尝试 去修改一下这个代码好,然后这个样式发现这里这个代码写错,这个代码是要把它写在这个如果哈当前的移动状态稍微锁定移动时候,这个代码才会执行这些内容,所以这里的话是 如果它是普通状态下的模式运动的话,那就直接执行这个就可以了。然后如果它当前是在锁定模式下的话,如果它当前一个 player state, p l a y e 啊 state, 它现在是等于现在这个锁定模式的时候, 然后这个时候他才会按照这个方式来进行这个代码,把它给复制过来好,然后这里给他删掉好,然后改完这个之后的话,我们再来看一下这个代码的一个运行 好,然后可以去尝试获得这个物体,然后可以, 然后可以前后进行一个推动,但现在锁定物体的时候,这个时候又出现一个问题,就是他会一直往前来进行运动。 呃,因为这样还有一个 bug 没有修改,就是,呃,他得先他得获得这个输入,他才可以进行这个运动。对,也等于是他这样他的一个 returned, 他的这个蕊藤不能写在这个地方,因为写在这个地方的话,就是无论他现在有没有输入,他都会返回针,他都会下一针会进行这个运动。因此现在这个蕊藤针这个代码他不能写在这个地方,他写在这这里。对,他写在这个引扑的里面,而加装一下, 他得是返回假,对,这个才是正确的,然后包括其他地方也是,然后把这个 reten 针给他放过来。 对,然后其他地方呢?要改成是返回假。 好, 呃,然后我们现在再执行一下这个代码,所以这个程序这个去找 bug 提 bug 的一个过程啊。其实,嗯,就是你要对于现在这个问题,他他的一个信,想一个大概的一个认识,然后你要知道他是属于哪一个功能模块。就比如刚刚那个现象, 他一直往前运动,那肯定是对运动这样进行限制的,代码可能会有问题,然后我就会跳回到那块去看一看这块的代码。呃,然后你需要不断的往复,然后去缩小你的一个范围,就是他代码可能出错的一个范围 啊。老凭借你对他这个功能的一个理解,你把他这个范围扫到一个很小的一个部分之后,然后你去尝试把他给揪出来。对,所以这个迪霸的过程其实 也算是对于现在你所写代码重新认识的一个过程。对,对,有时候可能对于需求的理解并不是特别的到位,就会出现这种情况。 好,然后这个时候这个物体他的一个限制锁定就已经完成了,就是他只能往前后进行运动,并他先玩一下 a 或者 s 是不能使用的。呃,这个东西有点烦人,把它关掉, 然后我再来执行一下。 好,然后在这里面我可以去获得他,然后前后移动,或者我现在回到这来,我在这里让他前后进行一个拖动。对, 这样子我们现在这块所实现一个功能,就是对于这个物体进行锁定,并且锁定的时候来进行运动,并且对锁定时候的运动进行一个限制。 这三块的功能也可以说是现在这个游戏的逻辑里面,嗯,最为麻烦的一个部分了,然后对于这块的功能我们就已经全部完成了, 然后这块功能完成之后,那接下来部分就比较简单了,就是尝试去摧毁场景里的物体,这些功能就比较简单,包括扣除能量,这些都是很简单的。呃,功能。对,所以说这块的代码如果 如果说你听起来比较的绕的话,你就跟着代码来敲,然后一边敲一边就是思考先这个代码怎么写,然后包括其实我每敲完一个代码,我也都会在呃讲一下这个代码的一个作用,然后你就结合那样一个讲解,然后对于缩写代码来有一个更好的认识。 对,一定要自己动手写代码,如果你只是看这个屏幕里的人在枪代码的话,除非你已经有过一些项目经验了,不然如果你是一个没什么项目经验的一个初学者的话,那你, 呃,可能会比较难理解像他当中一些过程,尤其是是如果你是边站上有些观众是开倍速看视频的话,那就尤其如此。或者些其他的一些平台的一些观众,你倍速看视频的话, 对你可能就会感觉跟不大,跟不大上。好,所以你就最好要一边跟着敲,一边来看这个视频。好, 就是我们这块内容的一个讲解,然后这是解问,然后我们下块内容就是讲解现在这个摧毁功能的一个实现。好,我们就讲到这里。
hello, 大家好,这里是喵不理我,是你们的喵老师。今天呢,我想带大家学习如何下载安装 unity, 这也是入门 unit 的必经之路。那么废话不多说,我们先打开自己的浏览器,我们大部分人用的都是百度搜索,那我们也一起使用百度搜索,在百度中呢搜索 unity 三 d, 然后这时候会看到一些广告的网站,我们可以忽略这 网站,不用进,我们进具有保障的这个官网。 unit 中国官网,点击进入大家会在右上角看到下载 unit 这几个字,一起点击,他这时候会到这个网页,他 你再往下滑的时候,可以看到有一个叫 unit 版本的这个这个栏目这边会有所有版本,还有长期支持版本,补丁程序版,还有 beta 版本, 我们不推荐下载这个最新版本,因为最新版本可能会有比较多的编辑器的 bug, 所以我推荐是下载长期支持版本, 长期支持版本点击这边。为什么叫长期支持版本?因为这是他在发布以后啊用的这官方会一直去维护的一个维护更新修复 bug 的版本, 所以我推荐下载这个版本,大家一起就点击从 unit hub 下载,点击,这时候呢会出现没有安装 unit hub, 所以要按平台下载,我这边是 windows 平台,如果大家是 mac 就用 mac 下载,如果是 windows 的话,就跟我一样点击 windows 下载,点击下载以后呢就会去下载,然后等等待后下载, 等他下载完了以后去点开他的目录,然后进行双击安装,这边就是点,我同意我大家可以选浏览,可以去选你的安装目录, 我这边只有 c 盘,所以我就安装在 c 盘,大家想安装到什么盘,可以自己指定目录,就在 c 盘给他装到 c 盘这吧, 我就点击安装,点击安装以后呢就点击完成,然后它就会自动去运行 unit hub, 我们稍等,这时候 unit hub 正在运行当中, 然后因为我们刚刚不是点击从网页这边点击了啊,从这边下下载吗?然后他会直接会弹出来去下载那个用他不里面就会 弹出来去下载这个,这个版本就我们刚刚点击的那个版本,这里也是一样,你可以去设置你的安装目录和地址。我这边呢,啊默认在 c 盘 c 盘进行安装了就安装用那题 editor 点击这边就点同意,他就会进行下载和安装,我们这边就要去等待一下,但是这样下载安装的版本有可能这东西他是没有装的,回头我们去看一下怎样让他装的比较全。在等待的时候,我们 因为这是一个英文界面,我们其实是可以把它它它其实是有是有中文版的 东西,那我们这边就可以点设置,设置以后,设置以后这边可以去点击 language 给它切换成简体中文,因为就能看到他就 变成中文版了,弹出来以后就点击试就可以了,点击试的话他就会进行安装,这时候就正在安装编辑器的应用,就是 unit 的编辑器进行等待以后,估计等个几分钟就可能需要十分钟,主要看你的网络和你 是不是把它安到 ssd 固态硬盘当中啊。我们终于安装完成了,大概等了十几分钟,这时候 他提示了安装完成,我们可以在项目这边可以建立新的项目,但是先不建立新项目,我们可以在安装这边看到他已经安装完成了,那现在呢?是编机器安装完成了, 如果我们想要进行安卓,安卓的打包,比如说你想要若 apk, 那我们还需要去安卓的就是相关的环境,还有呢,现在我们只安装了编辑器,这时候其实因为在 在我们学习过程中肯定是需要进行代码的编写,所以还需要安装嗯,代码的编辑器,那我们去哪里安装?一般来说可以在这边点击这个,我们点安装在这个对应的版本这里 点击这个设置,这里会有一个添加模块,点击添加模块这里就会现在就会出来这些东西,它上面这里会勾一个版本,勾一个东西,这里就是微说 studio 这边呢,我们他会去默认去安装这个二零二二的版本,我们也就跟着他一起去安装,然后后面会用到安卓,安卓的安卓打包的需要的工具,需要的环境,那我们也一起勾上,勾上这 ios, 这些就先不勾就不需要了哦, 我们就先勾这些,就可以直接点击继续了,点击继续以后他可以到下载到下载并安装了代码编辑器,还有安卓的环境,就这样跟着老师一起来点击继续,这边就点击同意继续, 一样点击同意继续安装,他这边就会去进行下载这些东西,这些环境,还有还有那个代码编辑器就就会进行安装了, wester studio 就会进行安装了,这时候再继续等待,差不多可能还要等待个十几分钟,这边现在是开始下载, 我一说 studio, 我下载完以后他就会边下载边安装,我们就进行继续进行等待,等这个下载好以后就可以打开编辑器进行 创作了。好的,这时候呢代码编辑器呢已经安装完毕了,其他的这些我们就可以在后台等着他,你可以看代码编辑器安装完毕,这边点击开始的时候可以看到 so studio 二零二二这个东西,这时候呢我们现在就可以去建立新的项目了,我们可以试一试新建项目,新建项目的时候我们现在有这个编辑版本,现在是三 d 核心模板, 就可以直接直接新建这个项目就好了。哦,这里可以显示你的,就可以输入你新建项目的项目名称,还有他的项目位置, 我可以设置一下项目位置,比如说我现在想弄在 c 盘这边新建一个目录,叫 unity, unity unity project, 新建一个这样的目录, 点击选择他就会选择在这个项目位置,就会在这边我名称呢就先直接用这个 my project 一就这样,然后我就点创建,创建这个这个我们的这个项目点击创建,他现在就会正在创建,我们就等待他创建好,创建好他会自己打开打开 unit, 等待以后就会进入到 my project 零一这个这个项目,然后如果你刚刚命名的时候 自己写了一个,他就会进入你刚刚自己写的那个项目,我们等待他加载项目。一般来说第一次打开创建的项目会有一点点慢, 我们要耐心的等待,经过等待后呢,我们打开了我们的这一个项目,这个项目是一个空的项目,我们现在要做一步验证,验证我们 嗯有没有安装好代码环境这些东西,我们现在是跟我 先跟着我一起来操作,我们在这边刚开始打开以后是一个这样的编辑器的界面,我们在这边点击右键创建空的物体,这边就会创建一个空物体,在这个空物体这边呢我们给他命名叫 game manager, 就跟着老师先来这边就是一个空的物体,我们现在不是想让想验证一下 我们的代码环境有没有配置好呢?我们可以在这个 asses assess 这边点击,然后在这边点击创建 create create 一个 c sharp, c sharp the script, 一个脚本就是创建一个脚本, 点击创建这边我们也是命名为 manager, 我们也命名为 game manager, 然后这就脚本就创建好了,我们要怎么知道他能不能就是 可以编辑呢?这里这时候我们在这边点击右键这里有一个 open citra project, 就是打开, 打开 c shop 的这个项目就打开我们的脚本项目点击,这时候他会自动的去打开刚刚我们安装的 wester studio, 第一次打开的时候呢,他 可能会要去让你去登录,你可以选择创建账户进行登录,我试一下可不可以跳过子像,如果可以跳过你可以暂时跳过选择你的主题,那我是比较喜欢深色的,所以我 我就选深色主题启动,然后这时候他就会需要等待,因为是首次使用吗?弹出这些的时候就点允许访问就可以了,这时候呢打开了我们的项目有新功能预览,我们可以关掉这边就会 去右边这边点击就可以看到我们刚刚的项目,还有我们刚创建的这个 game manager 这个脚本 可以在这边双击,双击以后他就打开了这个脚本,打开了这个脚本打开以后,现在我们想做的就是验证他能不能够经过我们运运行以后能不能够正常的运行, 我们可以试一试。现在就跟着老师来,他这里有两个我们刚刚创建的时候创建出来,他这个默认就有两个,两个方 法,我们可以在 start 括号这括号里面,这里在这个括括弧里面我们可以输入一段代码,就是输入 debug, debug 点 look, 就跟着老师来就可以,然后这边是点就就是你要打这个括号,然后再打 这个符号,然后里面就可以打字,我们就输出这这这一段的意思呢?就是你先跟着老师来输出,你这边要有一个英文的 很好。这一段的意思就是我们要输出在控制台,到时候运行的时候,刚运行就会输出输出一段,你好,这几个字我们 ctrl s 保存一下,点击就是你要 ctrl s 就是 保存,或者或者点击这边保存也可以,保存以后我们就可以回到编辑器当中,回到刚刚我们用那些编辑器当中,我们点击这个 美女的脚本,可以看到这边就进行了,他这边是乱码,他没有显示出来,但我们这边是中文编辑器这边显示的是问问问一个乱码,那我们可以把,我们可以试着先这样运行, 你可以在 game manager 这边点,就是把这个脚本拖到这边去,他就添加到了这个我们刚创建的这个空物体上,这时候点击 play 运行,看到了吗?这边左下角输出了,你好, 点击一下他就输出了。你好,这个刚刚我们打的代码这样呢?我们的环境已经配置好了,我们可以进行接下来的学习啦。