从iOS开发人员的角度来看Unity –制作Pong游戏(第1部分)


在求职过程中,我遇到的编码挑战之一是构建交互式游戏原型。 没有游戏开发背景,这对我来说是艰巨的。 我使用Swift开发的最接近的东西是TicTacToe和Black Jack的游戏。 为了使事情变得更复杂,我必须使用C#在Unity中进行开发。

该公司列出了一些流行的游戏,我可以根据这些游戏提出挑战。 我决定创建一个Pong游戏。 我从小就喜欢打乒乓球。 看起来很简单吧?

我有开发游戏的经验吗? 不。 我曾经用Unity或C#编码吗? 不。

我怀疑我是否还能了解Unity的工作方式😱。 我在忙于找工作,学习,建立网络,为App Store开发自己的应用程序以及参加会议。 我必须使用一周内从未接触过的语言提交令人印象深刻的原型?

我决定跳过Unity文档的大部分内容,而是观看youtube教程。 总的来说,这有助于加快我对Unity和C#的理解!


我试图找到Unity和Xcode之间的共性,以更好地了解Unity的工作原理。 这篇文章将向您展示如何使用iOS和OOP编程语言中的基本概念来理解Unity和C#。

Unity是Unity Technologies开发的跨平台游戏引擎,主要用于为计算机,控制台和移动设备开发视频游戏和模拟-Wikipedia

让我们从下载并安装开始

  • 下载并安装Unity3D。 您可以在此处找到文档。
  • 这是有关如何创建项目的分步指南。 我为Pong游戏选择了3D。 如果您更喜欢二维显示,也可以使用2D。
  • 创建项目后,将显示初始的Unity编辑器

工具列

  • 变换工具-帮助您在“场景视图”中移动对象。
  • 播放/暂停/步进切换 —播放,暂停或步进游戏。

层次窗口

  • 层次结构”窗口中的项目是“ 场景视图 ”中对象的文本表示形式。 它揭示了对象如何相互链接。

我们可以将其视为Xcode中Interface Builder视图

场景检视

如果您是iOS开发人员,则“ 场景视图”可与Xcode中的“ 故事板”媲美。 您可以在此处添加,操纵和放置游戏中使用的GameObject

场景视图Xcode中情节提要类似。

  • GameObject-您在“场景视图”中看到的每个对象都是一个GameObject 。 这是Unity编辑器的基本概念。 您可以将GameObject视为 一个可以向其中添加组件的容器。 稍后,我们将创建用于游戏的基本GameObject 。 这将是照明,球,桨和边界。
  • 相机-创建新的3D项目后,您将在“场景视图”中看到的第一件事就是“ 相机调焦” 。 对于Unity中的相机 ,一个很好的类比是影片中的摄像机。 但是,这并没有提供故事,而是为玩家带来了游戏世界。
  • 照明-当我在2D和3D项目之间进行选择时,我花了一段时间才意识到照明仅存在于3D中。 有很多类型的照明。 但是在这个项目中,我只使用了定向光在游戏对象上投射了阴影。

项目窗口

项目窗口显示项目中使用的资产 。 您可以将相似的资产分组在一起以保持事物的井井有条。

类似于Xcode中项目导航窗格

游戏画面

游戏视图”将渲染摄像机在“ 场景视图”中看到的内容。 它可以与工具栏中的“ 播放” ,“ 暂停”和“ 步进”按钮一起使用。

请记住,在“ 播放” 模式下 对场景所做的更改 将不会保存。 当我刚创建的舞会和剧本在重播场景时突然消失时,我学到了很难的方法。 😱

游戏视图将成为您在Xcode中模拟器

检查器窗口

Inspector窗口类似于Xcode中Attributes Inspector 我们在场景视图中讨论了GameObjects组件 。 就像在Xcode中一样, 检查器会显示与所选GameObject相关的所有组件 。 在此示例中,我们具有与之相关的组件变形,网格过滤器,球体碰撞器,网格渲染器,刚体等 )的GameObject Ball

这与Xcode中Inspector Pane非常相似。


我创建的游戏是多人游戏(与计算机和玩家2对比)。 在本文中,我将重点介绍让2个玩家使用相同的键盘玩游戏。

让我们回到我们创建的项目。 现在是空的。 您具有默认的相机货运

保存场景

  1. 在“层次结构”窗口中,双击“ 主摄像机”以将摄像机在“ 场景视图”中居中。
  2. 在检查器中,确保相机的X和Y位置为0。
  3. 然后,我们可以通过在层次结构窗口中右键单击场景并将其命名为Pong来保存该场景。

场景小发明

请记住,我们在这里处理3D对象。 如果我们使用Scene Gizmo仔细观察将会看到,如果在Gizmo中按下Z轴,则立方体与相机的位置相同。

我们可以在组件Transform-> Position中移动立方体的位置。 将多维数据集的 X,Y和Z位置设置为0。

我们基本上将多维数据集推入了“场景视图”中,以便摄像机可以将其渲染到“游戏视图”中。

3.我们将使用多维数据集作为游戏的上下边界。 使用“ 变换” 工具栏中的“ 移动”工具,我们将 多维数据集移到场景顶部 场景视图中

我们还需要桨供玩家使用。 因此,让我们做到这一点。


左右划水板- 左右划水板将由玩家1和2控制。

我们将对桨使用相同的多维数据集 GameObject 。 但是,我们将垂直拉伸而不是水平拉伸,然后将其放置在场景的左侧和右侧。

  1. 添加一个新的多维数据集 GameObject 。 使用缩放工具,向上拉伸多维数据集(Y)以使其更高。

我喜欢的桨看起来有点厚,所以让我们修复一下。

2.通过向左推动(X) 缩放工具来调整厚度。

3.将多维数据集重命名为LeftPaddle。

4.复制并粘贴LeftPaddle 。 重命名LeftPaddle(1)RightPaddle。RightPaddle的X位置更改为LeftPaddle的正X位置 (如果LeftPaddle为-7.4,则RightPaddle应该为7.4)。

完善! 现在您有了左右桨。 最后,我们将添加球。

我们将使用Sphere GameObject作为球。

  1. 在“ 层次结构窗口”中 ,添加另一个GameObject,但这一次我们使用Sphere。
  2. 将球的X,Y和Z坐标更改为0。

我们拥有游戏所需的所有GameObject 。 a!

我可以现在按播放吗?


不幸的是,第1部分必须在这里结束! 在下一个系列中,我们终于可以编写代码了! 我们将为我们添加物理脚本来移动游戏对象并玩游戏。 请继续关注下一篇文章!

特别感谢这些Youtuber的教程:

任天堂审查员和Timeslip软件

如果您喜欢阅读这篇文章,请不要忘记单击💚