Unity or Unity3D

Hire the Top 3% of 自由Unity或Unity3D开发人员

Toptal是面向顶级Unity3D开发者和编码员的市场. CEOs, CTOs, 顶级公司和初创公司的管理层与Toptal Unity3D自由职业者合作,以增强他们的Unity3D开发团队, 移动应用开发, web development, 以及其他软件开发项目来实现他们的业务需求.

无风险试用,满意才付款.

雇佣自由Unity或Unity3D开发人员和工程师

Jean Simonet

自由Unity或Unity3D开发人员

United StatesToptal Member Since April 8, 2019

Jean已经在游戏和互动媒体领域工作了15年, 最初是在大型工作室,现在是独立开发者. Jean是Unity开发专家,拥有从移动游戏到VR/AR再到物理设备的许多项目. 他编写奇特的着色器就像编写AI算法或设计有趣且引人入胜的益智游戏一样轻松自如.

Show More

David Draper

自由Unity或Unity3D开发人员

United StatesToptal Member Since August 2, 2022

David是一名软件和视频游戏开发者,专门从事Unity开发. 他参与过各种各样的项目, 包括游戏开发, web development, 增强现实, 以及虚拟现实. David使用ShaderLab, Cg和hsl开发了着色器和后处理效果. 他对图形和着色器开发充满热情.

Show More

克里斯托弗·埃利斯

自由Unity或Unity3D开发人员

United StatesToptal Member Since 2022年9月15日

Christopher是一名Unity开发人员,在各种项目上拥有超过十年的经验, 从游戏到商业应用, 包括移动, PC, 以及HoloLens和Vuforia等混合现实解决方案. 他的两个应用程序已经进入了各自类别的前十名, and one of them, Yumi Story Dice, 也得到了苹果的推荐. Christopher正在寻找使用Unity引擎的任何领域的兼职自由工作.

Show More

Huda Rasmey

自由Unity或Unity3D开发人员

EgyptToptal Member Since August 29, 2022

胡达七年前进入游戏行业,从事过不同类型的游戏, including cards, strategy, casual, and educational, 适用于PC和手机等平台. 她有扎实的游戏设计知识和经验,包括编写GDD. 在Unity 3D和虚幻引擎的专业知识, Huda可以使用Git和管道, including GitHub, GitLab, Bitbucket, GitHub Desktop, SourceTree, 和Git命令行.

Show More

Stephen Green

自由Unity或Unity3D开发人员

United StatesToptal Member Since June 19, 2022

Stephen是一名专业的软件工程师和游戏开发者,在高度监管的老虎机游戏行业拥有多年的代码编写经验. 他精通c#和Unity开发. 他使用Windows Forms和WPF项目等其他技术编写应用程序, JavaScript前端框架, TypeScript, and PixiJS, 并且用c++原生管理评估引擎. 他领导开发团队的背景磨练了他在项目管理和沟通方面的技能.

Show More

Marc-Antoine Desbiens

自由Unity或Unity3D开发人员

CanadaToptal Member Since July 3, 2019

Marc-Antoine是一名多才多艺且富有创造力的Unity程序员和游戏设计师,拥有8年以上的编码经验和5年以上的游戏开发经验, 包括在育碧工作《欧博体育app下载》,在华纳兄弟游戏公司工作《欧博体育app下载》. 在过去的三年里, Marc-Antoine决定成为一名全职自由职业者,并参与了20多个游戏项目, 包括他自己的合作解谜冒险游戏《欧博体育app下载》.

Show More

Omar Ahmed

自由Unity或Unity3D开发人员

GermanyToptal Member Since 2021年10月21日

Omar是一名游戏开发者,拥有慕尼黑工业大学(TUM)的游戏工程硕士学位,并拥有使用Unity和c#的丰富经验. 他曾与虚拟和增强现实合作,利用计算机视觉为来自不同企业的各种客户创造游戏化体验, machine learning, and Python. Omar非常适合这两家游戏工作室,他们都渴望扩大自己的团队和业务,希望制作定制游戏.

Show More

Daniel Caminos

自由Unity或Unity3D开发人员

SpainToptal Member Since March 27, 2017

Daniel于2006年开始工作,现在被同行视为高级软件工程师和Unity 3D和JavaScript专家. 在他的职业生涯中,他作为一名自由职业者,既独立工作,也与他人合作. 他过去的队友可以保证他可以快速融入跨学科团队和任何项目类型(UI/UX), front-end, game development, and so on). 丹尼尔是一个积极主动的人,喜欢应对新挑战和使用新技术.

Show More

Johnathan Hebert

自由Unity或Unity3D开发人员

United StatesToptal Member Since March 19, 2017

jonathan有15年的web应用编写经验,涵盖了消费者生产力软件和关键任务金融交易平台. 他拥有丰富的前端JavaScript和浏览器api知识,以及React和Redux等流行框架和库的丰富经验. Johnathan丰富的全栈经验包括Node.js和Express, MongoDB以及更传统的技术,如PHP, ASP.NET, and MySQL.

Show More

Manuela Kajkara

自由Unity或Unity3D开发人员

CroatiaToptal Member Since 2020年12月30日

Manuela是一名软件工程师, 专门从事移动设备和耳机的AR和VR体验和应用程序的开发. 她注重细节,有一双设计的眼睛, 她提供高质量的产品,超出客户的期望. Manuela有5年的工作经验,拥有软件工程硕士学位.

Show More

Nebojsa Brindic

自由Unity或Unity3D开发人员

SerbiaToptal Member Since October 19, 2017

Nebojsa拥有软件工程硕士学位和十年的开发经验, 包括在一个经历过两次创业加速器的游戏项目团队中工作. 这段经历让他在游戏开发和创业方面有了坚实的背景. Recently, 他一直专注于VR/AR开发, 强调其在体育运动中的应用, education, firefighting, 以及军事领域.

Show More

现在注册以查看更多资料.

Start Hiring

A Hiring Guide

雇用伟大的Unity或Unity3D开发人员指南

目前有4个.500万注册Unity3D开发者, 它是目前最流行的游戏开发软件平台. 爱好者和专业人士都可以访问它, and thus, 在面试过程中,你可以期待各种水平的开发人员. 为您的特定Unity3D需求找到合适的工程师可能具有挑战性. 这份招聘指南不仅向你展示了如何识别最佳候选人,还将帮助你找到适合你项目的理想开发人员, 还有如何定制你的面试过程来满足你的特殊需求.

阅读招聘指南

Unity或Unity3D招聘资源

雇用Unity或Unity3D开发人员的更多资源

工作描述模板面试问题Common Mistakes技巧和实践Jobs
Trustpilot
总体优势

在无风险试用后,98%的Toptal客户选择雇用我们的人才.

Toptal的筛选和匹配过程确保卓越的人才与您的精确需求相匹配.

Start Hiring
报纸上铺天盖地

... 允许公司快速组建具有特定项目所需技能的团队.

尽管对程序员的需求在不断增加,但Toptal对自己近乎常春藤联盟级别的审查感到自豪.

Our clients
为游戏制作应用程序
Conor Kenney
为游戏制作应用程序
构建一个跨平台的应用程序,在全球范围内使用
蒂埃里Jakicevic
构建一个跨平台的应用程序,在全球范围内使用
引领数字化转型
Elmar Platzer
引领数字化转型
挖掘实时数据将改变行业的游戏规则
挖掘实时数据将改变行业的游戏规则
我们的客户怎么想
Clients Rate total Unity或Unity3D developer4.4 / 5.0截至2024年1月17日,平均有238条评论
Testimonials

没有Toptal就不会有Tripcents. Toptal Projects使我们能够与产品经理一起快速发展我们的基金会, lead developer, 高级设计师. 在60多天的时间里,我们从概念到Alpha. 其速度、知识、专业知识和灵活性是首屈一指的. Toptal团队是tripcents的一部分,就像tripcents的任何内部团队成员一样. 他们像其他人一样贡献并拥有开发的所有权. 我们将继续使用Toptal. 作为一家初创公司,它们是我们的秘密武器.

布兰特利·佩斯,首席执行官 & Co-Founder

Tripcents

我对我们与Toptal的合作经验非常满意. 和我一起工作的专业人员在几个小时内就和我通了电话. 在和他讨论了我的项目后,我知道他就是我想要的候选人. 我立即雇用了他,他没有浪费时间就完成了我的项目, 甚至通过添加一些很棒的设计元素来增加我们的整体外观.

保罗·芬利,局长

K Dunn & Associates

与我合作的开发者都非常出色——聪明、有动力、反应灵敏. 过去很难找到高质量的工程师和顾问. Now it isn't.

瑞安·洛克菲勒首席执行官

Radeeus

Toptal立即理解了我们的项目需求. 我们遇到了一位来自阿根廷的杰出自由职业者, from Day 1, 沉浸在我们的行业中, 与我们的团队无缝融合, 理解我们的愿景, 并产生了一流的结果. Toptal使与高级开发人员和程序员的联系变得非常容易.

Jason Kulik,联合创始人

ProHatch

作为一家资源有限的小公司,我们不能犯代价高昂的错误. Toptal为我们提供了一位经验丰富的程序员,他能够立即投入工作并开始做出贡献. 这是一次很棒的经历,我们会马上再来一次.

斯图尔特·波克尼校长

现场专用软件解决方案

我们使用Toptal聘请了一位具有丰富的Amazon Web Services经验的开发人员. 我们面试了四位候选人,其中一位非常符合我们的要求. 这个过程迅速而有效.

Abner Guzmán Rivera,首席技术官和首席科学家

Photo Kharma

Sergio是一个很棒的开发者. 一流,反应迅速,工作效率高.

Dennis Baldwin,首席技术专家和联合创始人

PriceBlink

和Marcin一起工作是一种乐趣. He is competent, professional, flexible, 并且非常迅速地理解需要什么以及如何实现它.

安德鲁·费舍尔,首席技术官

POSTIFY

我们需要一位能立即开始我们项目的专业工程师. 西马纳斯的工作超出了我们的预期. 不需要采访和追踪专家开发人员是一种非常节省时间的方法,并且让每个人都对我们选择切换平台以使用更健壮的语言感到更舒服. Toptal使这一过程变得简单方便. Toptal现在是我们寻求专家级帮助的首选之地.

Derek Minor, Web开发高级副总裁

网络传媒集团

Toptal的开发人员和架构师都非常专业,也很容易共事. 他们提供的解决方案价格合理,质量上乘,缩短了我们的发行时间. 再次感谢,Toptal.

首席执行官杰里米·韦塞尔斯

Kognosi

我们与Toptal合作非常愉快. 他们为我们的应用程序找到了完美的开发人员,让整个过程变得非常简单. 它也很容易超出最初的时间框架, 我们可以在整个项目中保持同一个承包商. 我们强烈推荐Toptal,因为它可以快速无缝地找到高素质的人才.

Ryan Morrissey,首席技术官

应用商业技术有限责任公司

我对Toptal印象深刻. 我们的开发人员每天都和我交流,他是一个非常强大的程序员. 他是一个真正的专业人士,他的工作非常出色. Toptal 5星.

首席执行官彼得罗·卡索

浪人娱乐有限公司

与Toptal合作是一次很棒的经历. 在使用它们之前, 我花了相当多的时间面试其他自由职业者,但没有找到我需要的. 在与Toptal合作后,他们在几天内就为我找到了合适的开发者. 与我一起工作的开发人员不仅提供高质量的代码, 但他也提出了一些我没有想到的建议. 我很清楚,阿莫里知道自己在做什么. 强烈推荐!

行政总裁郑志刚

Bulavard, Inc.

作为一名Toptal合格的前端开发人员,我还经营着自己的咨询业务. 当客户来找我帮忙填补他们团队中的关键角色时, Toptal是我唯一愿意推荐的地方. Toptal的所有候选人都是精英中的精英. Toptal是我在近5年的专业在线工作中发现的性价比最高的网站.

伊桑·布鲁克斯,首席技术官

Langlotz Patent & 商标工程公司.

在希格尔的早期, 我们需要一流的开发者, 以可承受的价格, 及时地. Toptal delivered!

Lara Aldag, CEO

Higgle

Toptal能让你轻松找到合适的人选,让你放心,因为他们有能力. 我肯定会向任何寻找高技能开发人员的人推荐他们的服务.

Michael Gluckman,数据经理

Mxit

Toptal将我们的项目与最优秀的开发人员快速匹配的能力非常出色. 开发人员已经成为我们团队的一部分, 我对他们每个人所表现出的敬业精神感到惊讶. 对于那些希望与最好的工程师远程工作的人来说,没有比Toptal更好的了.

劳伦特·阿里,创始人

Livepress

Toptal让寻找合格的工程师变得轻而易举. 我们需要一个有经验的ASP.. NET MVC架构来指导我们的启动应用程序的开发, Toptal在不到一周的时间里为我们找到了三位优秀的候选人. 在做出我们的选择后,工程师立即在线并开始工作. 这比我们自己发现和审查候选人要快得多,也容易得多.

Jeff Kelly,联合创始人

协同解决方案

我们需要一些Scala的短期工作,Toptal在24小时内为我们找到了一位优秀的开发人员. 这在其他平台上是不可能实现的.

Franco Arda,联合创始人

WhatAdsWork.com

Toptal为快速发展和规模化的企业提供不妥协的解决方案. 我们通过Toptal签约的每一位工程师都迅速融入了我们的团队,并在保持惊人的开发速度的同时,将他们的工作保持在最高的质量标准.

Greg Kimball,联合创始人

nifti.com

如何通过Toptal雇佣Unity或Unity3D开发人员

1

与我们的行业专家交谈

Toptal的工程总监将与您一起了解您的目标, technical needs, 团队动力.
2

与精心挑选的人才一起工作

几天之内,我们将向您介绍正确的Unity或Unity3D开发人员为您的项目. 平均匹配时间在24小时以下.
3

绝对合适

与你的新Unity或Unity3D开发人员一起试用一段时间(只在满意的情况下付费), 在订婚前确保他们是合适的人选.

寻找拥有相关技能的专家

在我们的人才网络中访问大量熟练的开发人员,并在48小时内雇用最优秀的3%.

FAQs

  • Toptal Unity和Unity3D开发者有何不同?

    At Toptal, 我们彻底筛选我们的Unity或Unity3D开发人员,以确保我们只匹配您与最高水准的人才. 在100多个国家中,每年有5000人申请加入Toptal网络, 只有不到3%的人能达标. 你将与工程专家(而不是一般的招聘人员或人力资源代表)一起了解你的目标, technical needs, 团队动力. 最终的结果是:经过专家审查的人才从我们的网络,定制匹配,以满足您的业务需求.

  • 我可以在不到48小时内通过Toptal雇佣Unity或Unity3D开发人员吗?

    取决于可用性和进度, 你可以在注册后48小时内开始与Unity或Unity3D开发人员合作.

  • Toptal Unity或Unity3D开发者的无风险试用期是多长?

    我们确保您和您的Unity或Unity3D开发人员之间的每次约定都从长达两周的试用期开始. 这意味着你有时间确认订婚是否成功. 如果你对结果完全满意, 我们会给你开时间单的,你愿意多久我们就多久. 如果您不完全满意,我们不会向您收费. From there, 我们要么分道扬镳, 或者我们可以为您提供另一位可能更合适的专家,我们将与他开始第二轮谈判, no-risk trial.

  • Toptal有什么样的人才?

    我们的平台拥有各种各样的技能、经验和背景. 我们的自由职业者包括软件工程师, 用户体验设计师, 项目管理专家, 从产品经理到曾在谷歌等领先公司工作过的财务专家, Microsoft, Amazon, and many more.

  • Toptal还提供哪些服务?

    除了我们的人才匹配服务, 我们还像开发公司一样提供web和应用程序开发服务. 通过我们的total Projects团队, 我们组建由高级项目经理组成的跨职能团队, web developers, app developers, 用户界面设计师, 以及其他技术技能. 我们的团队成员遵循定义良好的开发过程来构建功能齐全的解决方案.

Share
Unity or Unity3D

如何聘请优秀的Unity3D开发人员

The Challenge

在撰写本指南时,有 4.500万注册Unity3D开发者它比其他任何视频游戏开发软件都更受欢迎. 它可以制作手机游戏,也可以制作增强现实和虚拟现实游戏. 爱好者和专业人士都可以访问它, 因此,在面试过程中,你可以期待各种水平的开发人员. However, 这只是战斗的一半, 因为在Unity3D开发平台中有广泛的技能集. 本指南不仅将帮助您识别和雇用Unity3D开发人员, 但这也将帮助你确保游戏引擎开发者能够完美地满足你的项目需求.

Unity3D是目前最流行的游戏开发软件

Unity3D是目前最流行的游戏开发软件

按要求缩小候选人范围

Unity是非常多样化的, 因此,作为一名Unity3D游戏开发者意味着你必须拥有广泛的主题经验. 这是一个关键点, 因为你的面试对象可能是顶级Unity3D游戏开发专家, 但仍然不适合你的需求,因为他们的技能可能不一致.

理想情况下,你需要一个“以前做过”的候选人。. 例如,如果你正在制作一款3D主机游戏,他就应该在此之前发行主机游戏. Alternatively, 应聘者可能是优秀的2D手机开发者, 虽然他有可能很快掌握3D技术,但这不是我们讨论的重点. 更进一步说, 即使他在你所瞄准的特定平台上有经验, 你可能想把注意力更集中在他完成的任务上,并将它们与你需要的任务进行比较. Unity3D开发者发行了一款大型3D手机游戏,这听起来可能令人印象深刻, 但如果他的经验仅仅是游戏的UI/UX, 他可能无法帮助你为即将问世的游戏创造AI或游戏逻辑.

Thus, 你必须明确自己的目标平台, 以及你需要什么样的技能. 在你开始找工作之前,这里有一些问题需要在心里回答.

问:你们将支持哪些平台?

Unity3D supports 广泛的平台,包括手机、主机、Web、PC、Mac、VR、AR等.

而Unity能够轻松地将游戏部署到各个平台上, 应聘者必须在你想要的平台上发行过至少一款游戏, 因为在开发过程中,每个平台都有自己的细微差别. For example, 由于HTML5画布的安全限制,WebGL目标不支持一些库和特性.

问:这个项目是2D还是3D的?

而Unity3D最初只支持3D和带有第三方插件的2D, 它现在原生支持2D项目. 许多开发者在这两方面都有经验, 但有些人可能更倾向于这两种环境中的一种, 因为它们都有各自的技术障碍. For example, 3D开发可能需要更广泛的摄像头, lighting, textures, and models, 而2D开发可能更关注精灵, animations, and tweening.

问:这是一个现有的项目还是一个新项目,使用的是哪种语言?

如果你正在处理一个现有的项目, 你需要弄清楚面试者是否精通UnityScript或c#, 因为Unity3D支持两种语言,而你的源代码通常使用一种语言. 测试他们的c#或UnityScript编程技能是很重要的, 除了本文件中列出的问题之外.

问:该项目将与后端服务器集成吗?

申请人是否有使用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, 它们将需要跟踪递归过程中行进的距离,并忽略任何超过找到的最小距离的路线.

问:面试者会负责UI/UX吗?

Unity3D中有各种各样的UI工具. 问题是,他们对哪一个最有经验,他们更喜欢哪一个? 被采访者应该知道每一个的优点和缺点, 并且能够描述为什么他们更喜欢其中一个.

最新的Unity版本5提供了自己的UI uGUI, 但在目前的形式下,它有一定的局限性,并且缺少许多可以被认为是标准的组件, 比如下拉菜单. 其他常用的UI平台有 NGUI and 2DToolKit. NGUI 可能是最受欢迎的选择吗, 因为它支持开箱即用的小部件的数量, 但它可能很复杂. 总之,Unity是原生的 uGUI 是否应该使用,只要它的基本特征涵盖了项目的需要. 如果没有,那么 NGUI 值得考虑. Alternatively, 如果受访者选择了不同的工具集, 然后他们应该能够给出合理的理由.

技术问题

问:请解释什么是预制件,什么时候使用.

预制件是一个模板 GameObject. 它包含对象本身,以及附加到它的子对象和行为. 预制件很有用,因为它们可以重复使用, 如果你对预制件做了改动, 它将更新项目中的所有实例. 例如,在游戏《欧博体育app下载》中,可以将预制件用于小行星. 开发者可以通过参考预制构件在太空中生成多个相同的小行星. Later, 如果美工想要改变游戏中所有小行星的颜色, 这就像在单个预制件中改变一个纹理一样简单.

对于任何关卡的Unity3D开发者来说,这应该是一个直截了当的问题, 但这也引出了一些更具挑战性的问题.

问:在游戏《欧博体育app下载》中,当一颗小行星爆炸时,它会被三个更小的小行星所取代. 为这个事件实例化三个预制件的缺点是什么?

在Unity运行时中实例化预制件在CPU上是非常昂贵的. 在CPU广泛的游戏或贫乏的计算机系统, 当实例化发生时,你会看到帧率明显下降. Thus, 在行动中间实例化预制件通常是糟糕的设计, 当小行星爆炸时,玩家将经历一个障碍或延迟.

问:解释如何减轻实例化预制件的性能限制.

前面提到的减少延迟的一个可接受的做法是创建对象池. 对象池是在使用前实例化的对象数组. 当有大量的项目需要使用时,这一点尤其有用, 比如我们例子中的小行星. 脚本可以加载所需数量的对象,并在数组中存储对每个对象的引用. 当小行星生成时,它们将从阵列中移除,并在场景中可见. 当小行星爆炸时,它们将从场景中删除,并存储在阵列中以供重复使用.

另一种解决方案是在场景中加载对象. 当需要使用的对象数量很少时,此解决方案通常效果最好, 这样可以方便地管理场景中的资源. 一个很好的例子就是每次玩家的飞船爆炸时都会出现粒子爆炸. 对象池在这里没有意义, 考虑到在场景中只需要一个这样的预制件, 假设你的飞船只能爆炸一次. 但是您还希望避免在运行时实例化效果, 因为它可能会在死亡序列中延迟或卡住. 因此,在这种情况下,在场景中保留一个引用可能是最好的选择.

问:请解释使用对象池的缺点,以及如何减轻它们?

对象池出现的问题是,每个对象都需要存储在内存中. 这在诸如移动设备之类的低内存设备上可能是一个问题, 因为您可能无法在分配的内存中存储对可能生成的所有内容的引用.

缓解这个问题需要在内存崩溃和CPU延迟之间取得平衡. 首先也是最重要的, 应该使用编译时宏来确保优化和裁减只影响低端机器, 在高端机器上,对象池仍然被充分利用. 在低端机器上, 应该谨慎使用对象池和缓存,因为只有高频选项应该放在池中, 并且尽可能少地使用物体以获得更好的体验. 低频对象可能需要在运行时启动, 在低端设备上造成偶尔的延迟, 或者,可能需要做出设计决策,为低端机器移除这些对象. 例如,粒子效果和爆炸可能需要从低端体验中移除. 没有粒子的流畅游戏比有粒子的滞后游戏更受欢迎. 缓存的资源应该在不再使用时立即清除. 有些机器提供低内存警告,这有助于确定何时需要清除缓存.

问:谈谈你将如何组织《欧博体育app下载》游戏的职业?

这是一个非常广泛的问题,有许多可以接受的答案. 这个问题的重点是关注开发人员何时选择使用组合而不是继承. 如果他们回答得不够充分, 你可能需要把他们引向正确的方向, 或者直接要求他们描述在Unity环境中组合与继承的优缺点.

首先,继承意味着一个类扩展另一个类. 一个例子是一个类 Orange 可以扩展父类 Fruit. The class Fruit 会定义诸如种子类型之类的属性吗. Orange 属性继承自 Fruit 类,所以它也有种子,但它也扩展了 Fruit 类的附加属性,如具有剥离.

另一方面,组合用于组合多个类. In the Orange 在上面的例子中,没有 Fruit class. 我们可以开一节课 Seeds and another for Peel. The Orange 然后存储对 Seeds class and the Peel 类,因此它将由这些类组成.

Unity广泛使用合成, 因为它的基础依赖于实体组件或实体行为体系结构模式. 在这方面,场景中的一切都被认为是一个 GameObject, or entity. Each GameObject 包含定义它的行为或组件的列表,根据定义,这是组合.

因此,回到最初的小行星问题. 受访者应该以一种利用实体行为模型的方式构建他们的类. 在游戏《欧博体育app下载》中,有两种类型的敌人,小行星和外星飞船. 下面我们将通过比较使用继承和组合的实现,看看如何将这些敌人类型分解为类.

Inheritance 在继承设置中,很可能需要三个类. 我们将调用的基类 Enemy,然后是我们将调用的两个派生类 Asteroid and AlienShip. 基类将处理两个类共享的所有功能 Asteroid and AlienShip 比如追踪生命值. 派生类将添加额外的功能. 例如,派生的 AlienShip 能处理飞船的飞行和射击功能吗.

Composition 在组合设置中,我们很可能会以相同的方式开始 Enemy 处理生命值的类. 但我没有扩展它, 我们将使用Unity的实体行为模型为其添加额外的行为(类),从而添加我们所寻求的功能. 要创建外星飞船,我们可以创建一个处理移动的类(MovementBehavior),另一个负责射击(ShootingBehavior). 然后我们将这三个类连接起来, Enemy, MovementBehavior, and ShootingBehavior to a GameObject 创造外星飞船.

乍一看,继承似乎更直观, 但随着游戏设计的复杂性和新功能的增加, 它变得非常难以管理,因为每次更改都可能更改所有派生类. Composition, 另一方面, 是非常灵活的,并允许开发人员创建新的功能, 或者在这种情况下是敌人, 只需添加和删除行为. 也就是说,这两种设置都是适合的,具体取决于场景. 在面试过程中,关键是要确保被面试者知道这两种选择都存在, 并且可以解释为什么他们会选择其中之一.

问:解释什么是抽签召唤.

Draw Calls是处理器在渲染场景时需要改变材质的次数. 如果一个场景中有100个物体, 每个都有独特的材料, 然后会有100次抽签. However, 如果每个对象使用相同的材料或精灵表, 然后,所有100个对象都可以在一个draw调用中绘制.

问:如何减少抽取呼叫?

Draw调用可以通过批处理图像来使用相同的材质或精灵表. 例如,在一款2D游戏中,我们可以让一个角色的头部、身体和腿部都有精灵. 每个精灵都是独一无二的,因此需要三次绘制调用来渲染角色. To reduce this, 我们可以将这三个精灵组合成一个单一的精灵表, 然后绘制调用将减少到一个,因为所有三个部分可以一次绘制.

一个好的后续问题是,角色拿起一件斗篷,它出现在头部上方,但在身体后面. 斗篷和角色在不同的精灵表上. 在两个精灵表上渲染角色和斗篷需要多少次绘制调用? 答案是3. 即使涉及到两个精灵表,z轴顺序也会导致三个开关发生. 首先,角色精灵表用于绘制头部. 然后,使用披风精灵表绘制披风. 最后,使用角色精灵表绘制身体和腿. 身体和腿不能与头部同时绘制,因为斗篷出现在它们之间.

问:你如何发现内存泄漏?

这个问题的关键是确保开发人员了解剖析器的来龙去脉,并经常使用它们. 该分析器有一个内存部分,允许您对存储在内存中的所有内容进行详细快照. 然后,您可以搜索该列表并查找需要清理的任何内容. 向项添加名称有助于在列表中区分它们.

Summary

我们只是抓住了成为顶级Unity3D开发人员所需知识的冰山一角. 我们希望本指南中的问题和答案能够帮助您找到适合您项目的理想开发人员, 不仅仅是寻找顶级的Unity3D开发者, 但是要为您的特定需求找到最好的开发人员.

顶级Unity或Unity3D开发人员需求量很大.

Start Hiring