在求职过程中,我遇到的编码挑战之一是构建交互式游戏原型。 没有游戏开发背景,这对我来说是艰巨的。 我使用Swift开发的最接近的东西是TicTacToe和Black Jack的游戏。 为了使事情变得更复杂,我必须使用C#在Unity中进行开发。
该公司列出了一些流行的游戏,我可以根据这些游戏提出挑战。 我决定创建一个Pong游戏。 我从小就喜欢打乒乓球。 看起来很简单吧?
- 更多NPC(COPY 2017年12月4日)
- 性能分析
- 使用NEW Unity 2017学习C#。您的第一个用于Web和移动的2D和3D Unity游戏。
- 剑术法术-确定玩家的影响力
- 时钟的滴答声:如何在Unity中优化编译时间

我有开发游戏的经验吗? 不。 我曾经用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个玩家使用相同的键盘玩游戏。
让我们回到我们创建的项目。 现在是空的。 您具有默认的相机和货运 。

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

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


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

我们基本上将多维数据集推入了“场景视图”中,以便摄像机可以将其渲染到“游戏视图”中。
3.我们将使用多维数据集作为游戏的上下边界。 使用“ 变换” 工具栏中的“ 移动”工具,我们将 将多维数据集移到场景顶部 在场景视图中 。


我们还需要桨供玩家使用。 因此,让我们做到这一点。
左右划水板- 左右划水板将由玩家1和2控制。
我们将对桨使用相同的多维数据集 GameObject 。 但是,我们将垂直拉伸而不是水平拉伸,然后将其放置在场景的左侧和右侧。
- 添加一个新的多维数据集 GameObject 。 使用缩放工具,向上拉伸多维数据集(Y)以使其更高。

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

2.通过向左推动(X) 缩放工具来调整厚度。
3.将多维数据集重命名为LeftPaddle。
4.复制并粘贴LeftPaddle 。 重命名LeftPaddle(1)为RightPaddle。 将RightPaddle的X位置更改为LeftPaddle的正X位置。 (如果LeftPaddle为-7.4,则RightPaddle应该为7.4)。

完善! 现在您有了左右桨。 最后,我们将添加球。
球
我们将使用Sphere GameObject作为球。
- 在“ 层次结构窗口”中 ,添加另一个GameObject,但这一次我们使用Sphere。
- 将球的X,Y和Z坐标更改为0。

我们拥有游戏所需的所有GameObject 。 a!
我可以现在按播放吗?

不幸的是,第1部分必须在这里结束! 在下一个系列中,我们终于可以编写代码了! 我们将为我们添加物理和脚本来移动游戏对象并玩游戏。 请继续关注下一篇文章!
特别感谢这些Youtuber的教程:
任天堂审查员和Timeslip软件
如果您喜欢阅读这篇文章,请不要忘记单击💚