如今,超过30%的“前1000名”游戏都是使用Unity构建的。 超过50%的人类是游戏玩家。 我也是一个游戏玩家,我一直想自己创建一个游戏,然后开始使用Unity进行游戏。 我开始使用Unity的原因是该文档得到了很好的支持,以及易于遵循的教程。
Unity有何优点?

Unity允许用户根据需要构建自己的场景(Unity世界),同时提供用户所需的每种材料。 Unity提供了成千上万的免费资产,用户可以下载,甚至可以将自己的自定义资产导入游戏中。 除了自定义Unity场景外,还允许每个用户下载声音,动作,环境甚至角色,以自定义和开发他们的游戏玩法。 您可能想知道,“但是学习C#和Unity方法只是为了构建游戏需要花费很长时间吗?”。 Unity需要非常基本的C#,例如,弄清楚何时对C#使用私有或公共类,您可以使用简单的数学逻辑来设置健康状况。
- 如何玩Alexa语音技能游戏
- 7行代码来编写Elixir中的Fizz-Buzz游戏原理
- 罪恶装备Xrd Revelator评论
- 开发JavaScript游戏引擎-1
- 逃生室会议上的必看演讲Up The Game

Unity为用户提供了易于理解的方法,例如Destroy和gameObject。 用户将能够通过C#脚本轻松地了解每种方法以及它们的工作方式。 该脚本的外观完全相同。 给予玩家50点生命值,如果生命值低于0,它将调用Die函数,这将破坏gameObject。 如果用户计划构建更复杂和不同级别的文件,则可能需要他们拥有数十个脚本,但是逻辑包含与此脚本相当简单的内容。 确保在我的Github上检查我的项目https://github.com/jiyong1128/ShootingGame-Unity/tree/master/Scripts。

关于我的游戏
我使用Unity制作了第一人称射击游戏。 这就是我的场景。 规则和游戏逻辑很简单,您的角色在地图上漫游,靠近僵尸会降低您的生命线,当您的生命值变为0时,游戏会重新开始。 但是杀死boss僵尸将完成任务。 您可以使用键盘移动角色。

如何制作游戏
Unity中的游戏开发很容易,因为有很多资源可以利用。 如果您在为正确的操作找到正确的方法时遇到困难,则可以使用带有单引号键的Command来获得正确的文档。 在资产方面,用户将能够使用预制件 , 预制件是存储在项目视图中的可重复使用的GameObject。 预制件可以插入任意数量的场景中,每个场景可以多次插入。 在将Prefab添加到场景时,将创建它的实例。 所有Prefab实例都链接到原始Prefab ,并且本质上是其副本。
碰撞在Unity的物理引擎中如何工作?
物理引擎不允许两个碰撞体体积,这意味着“为物理碰撞而定义对象形状的组件。”为处理重叠,当任何两个或多个对象重叠时,物理引擎将分析其速度,旋转,然后确定并计算碰撞。 它检查的因素之一是它的静态或动态,静态碰撞器通常是场景中不可移动的部分,例如墙壁,地板,还是动态碰撞器,是移动的物体,例如播放器或汽车。 在计算碰撞时,静态几何不会受到碰撞的影响,但动态对象会受到影响。 在我们的例子中,播放器是动态的,因为它从墙的几何形状反弹。 但是,物理引擎可以允许对撞机体积重叠,而我们通过将对撞机变成触发器来做到这一点。 我们可以通过Ontrigger事件消息检测与该触发器的联系。 您可以用它来做一些聪明的事情,例如在冒险游戏中的门口中间放置一个扳机,当玩家输入该扳机时,迷你地图会更新,并且消息中会显示“您已经找到了这个房间”。 在我的游戏中,当您用枪杀死老板时,您会看到一条文字,说“您赢了”。
活动动画师

事件动画制作者是“控制Mechanical动画系统的接口”。 它们用于根据需要的任何事件为游戏中的任何角色或任何对象设置动画。 在这种情况下,主要角色的上半身有2次攻击动作,分别称为Attack1和Attack2。 您将可以连接动作,例如速度,进入时间,退出时间以及影响玩家攻击游戏玩法的任何其他动作状态。 但是,attack1和attack2具有附加的动作。 您需要提供被攻击的动作,以使其动画制作者在游戏中移动。
将脚本附加到角色和敌人

对于每个角色,模型和游戏对象,您都可以在其中附加一个C#脚本。 您还可以公开许多不同对象类型的公共变量。 如果我将此代码拖放到另一个GameObject上,则会实例化该代码组件的完全独立的实例。

这就是我在每个僵尸中实现速度移动脚本的方式。 在顶部的动画器设置中,您将能够制作一个名为“速度”的新动画并对其进行自定义。 另外,您将能够将多个脚本放入单个角色中,以提供添加到该角色的多个动作和功能。
性能
Unity所做的性能优化是计算场景中所有静态碰撞器的所有体积,并将此信息保存在缓存中。 这是有道理的,因为静态对撞机不应移动,这样可以节省每帧重新计算此信息的时间。 每当我们移动,旋转或缩放静态对撞机时,Unity都会再次重新计算所有静态对撞机并更新静态对撞机缓存。 重新计算缓存将占用资源,但是Unity为我们提供了资源。 我们可以根据需要经常移动旋转和缩放动态对撞机,而Unity不会重新缓存任何对撞机体积。 Unity希望我们移动对撞机,并且在移动它们之前,我们必须向Unity指示哪些对撞机是动态的。 我们使用刚体来执行此操作,这意味着“刚体的任意两个给定点之间的距离在时间上保持恒定,而不管施加在其上的外力如何”。 刚体被认为是动态的。 任何附有对撞机但没有物理刚体的游戏对象都应该是静态的。 点或积分之类的拾取对象具有盒碰撞器,但没有刚体。 因此,Unity每帧都要重新计算我们的静态对撞机缓存。 并且添加刚体可能是一种解决方案。 这将导致多维数据集成为静态碰撞器,而不是动态碰撞器。
结论
Unity是一个受支持的,相当简单且非常令人兴奋的学习和玩游戏的框架。 一旦用户认为自己可以开发出一款出色的游戏,便可以使用Xcode部署Unity游戏,如果幸运的话,他们将能够从中赚钱。 用户可以构建任何游戏,例如射击游戏,棋盘游戏,3D游戏,VR游戏等等。 如果您想看我的游戏,请查看https://www.youtube.com/watch?v=WDRgMrAJw_0。