Christopher是一名Unity开发人员,在各种项目上拥有超过十年的经验, 从游戏到商业应用, including mobile, PC, 以及HoloLens和Vuforia等混合现实解决方案. 他的两个应用程序已经进入了各自类别的前十名, and one of them, Yumi Story Dice, 也得到了苹果的推荐. Christopher正在寻找使用Unity引擎的任何领域的兼职自由工作.
Daniel于2006年开始工作,现在被同行视为高级软件工程师和Unity 3D和JavaScript专家. 在他的职业生涯中,他作为一名自由职业者,既独立工作,也与他人合作. 他过去的队友可以保证他可以快速融入跨学科团队和任何项目类型(UI/UX), front-end, game development, and so on). 丹尼尔是一个积极主动的人,喜欢应对新挑战和使用新技术.
At Toptal, 我们彻底筛选我们的Unity或Unity3D开发人员,以确保我们只匹配您与最高水准的人才. 在100多个国家中,每年有5000人申请加入Toptal网络, 只有不到3%的人能达标. 你将与工程专家(而不是一般的招聘人员或人力资源代表)一起了解你的目标, technical needs, and team dynamics. 最终的结果是:经过专家审查的人才从我们的网络,定制匹配,以满足您的业务需求.
而Unity能够轻松地将游戏部署到各个平台上, 应聘者必须在你想要的平台上发行过至少一款游戏, 因为在开发过程中,每个平台都有自己的细微差别. For example, 由于HTML5画布的安全限制,WebGL目标不支持一些库和特性.
问:这个项目是2D还是3D的?
而Unity3D最初只支持3D和带有第三方插件的2D, 它现在原生支持2D项目. 许多开发者在这两方面都有经验, 但有些人可能更倾向于这两种环境中的一种, 因为它们都有各自的技术障碍. For example, 3D开发可能需要更广泛的摄像头, lighting, textures, and models, 而2D开发可能更关注精灵, animations, and tweening.
申请人是否有使用Unity3D的经验 NetworkManager 类,或者有使用RESTful API处理自定义后端的经验? 验证申请人使用后端服务经验的一个示例问题可以是:“您如何从Unity3D访问RESTful API ??“可能的解决方案包括使用Unity WWW class, HttpWebRequest,或使用Unity3D的资源存储和下载 Best HTTP. The Best HTTP 要花钱,但在很多情况下,这是值得的 WWW 类缺少一些特性和 HttpWebRequest 不是所有平台都支持.
问:这个项目会有单人AI吗?
评估某人AI能力的范围不在本指南的讨论范围之内. However, 一个好的起点可能是问他们如何在网格上的两个方格之间导航. 解决方案应该包括它们递归地检查相邻的方块,同时跟踪它们已经访问过的位置,直到到达目的地. 接下来的问题可能是如何确保解找到最短距离. In this case, 它们将需要跟踪递归过程中行进的距离,并忽略任何超过找到的最小距离的路线.
Inheritance
在继承设置中,很可能需要三个类. 我们将调用的基类 Enemy,然后是我们将调用的两个派生类 Asteroid and AlienShip. 基类将处理两个类共享的所有功能 Asteroid and AlienShip 比如追踪生命值. 派生类将添加额外的功能. 例如,派生的 AlienShip 能处理飞船的飞行和射击功能吗.
Composition
在组合设置中,我们很可能会以相同的方式开始 Enemy 处理生命值的类. 但我没有扩展它, 我们将使用Unity的实体行为模型为其添加额外的行为(类),从而添加我们所寻求的功能. 要创建外星飞船,我们可以创建一个处理移动的类(MovementBehavior),另一个负责射击(ShootingBehavior). 然后我们将这三个类连接起来, Enemy, MovementBehavior, and ShootingBehavior to a GameObject 创造外星飞船.
乍一看,继承似乎更直观, 但随着游戏设计的复杂性和新功能的增加, 它变得非常难以管理,因为每次更改都可能更改所有派生类. Composition, on the other hand, 是非常灵活的,并允许开发人员创建新的功能, 或者在这种情况下是敌人, 只需添加和删除行为. 也就是说,这两种设置都是适合的,具体取决于场景. 在面试过程中,关键是要确保被面试者知道这两种选择都存在, 并且可以解释为什么他们会选择其中之一.
问:解释什么是抽签召唤.
Draw Calls是处理器在渲染场景时需要改变材质的次数. 如果一个场景中有100个物体, 每个都有独特的材料, 然后会有100次抽签. However, 如果每个对象使用相同的材料或精灵表, 然后,所有100个对象都可以在一个draw调用中绘制.
问:如何减少抽取呼叫?
Draw调用可以通过批处理图像来使用相同的材质或精灵表. 例如,在一款2D游戏中,我们可以让一个角色的头部、身体和腿部都有精灵. 每个精灵都是独一无二的,因此需要三次绘制调用来渲染角色. To reduce this, 我们可以将这三个精灵组合成一个单一的精灵表, 然后绘制调用将减少到一个,因为所有三个部分可以一次绘制.