工作流程,编程,调试,性能:Unity游戏开发者应该学习的20个改进技巧
Unity 是一个备受欢迎的游戏开发平台。它的功能令人印象深刻,同时也迎合了不同的游戏开发需求。游戏开发者可以使用 Unity 创建任何类型的游戏,从世界级的 RPG 游戏到最流行的增强现实游戏 PokêmonGo。随着世界各地的广泛使用,许多开发人员在网络上用 Unity 来炫技,有些甚至在游戏发布前就能疯狂圈粉!此外,许多初学者都利用 Unity 来学习游戏开发或游戏编程。由于 Unity 的复杂性 -- 它涵盖了设计、脚本、调试和游戏开发的其他各项方面 -- 它可能难以管理。下面介绍一些关于 Unity 的技巧,让大家用起来更为得心应手。
五大工作流程改进技巧
工作流程改进技巧显然旨在帮助您改进游戏开发流程。他们将确保您的项目进展更顺畅,朝着正确的方向发展。
下列是 Unity 游戏开发者的五大工作流程改进技巧:
- 进行源代码管理,以令效率最大化:正确使用源代码管理来改进您的工作流程。这将确保您不会丢失任何工作成果,并且还可以让您进行前后对比,查看代码发生了哪些变化。您可以给每个资源标上序号,使用将工作进行切分的策略来最大限度地控制生产流程,并使用子模块来最大限度地提高源代码管理效率。
- 确保您已经想清楚了要在项目中使用的资源规模。这个决定取决于你正在进行的项目的类型,以及游戏期望运行的分辨率。
- 始终将您的构建流程自动化以节省时间。自动构建流程还可以确保您可以同时处理不同的游戏版本,并且在每次修改后不需要经历完整的构建流程就可以随时进行小修改。
- 适时保存你的工作成果。当你发现自己卡在之前编写的一段代码上,却忘记保存代码时,不会有比这更大的灾难了。此外,存档可以帮助其他队友更好地了解您的工作并就项目进行协作。
- 测试场景可能成为项目的一个庞大部分,并且在项目完成后,它们将毫无用处。为确保项目文件不会变得太臃肿,请将测试场景与代码分开,并在项目完成时将其删除。
五大编程改进技巧
现在,让我们来谈谈游戏开发最重要的部分:编程!技巧如下:
- 利用好命名空间。命名空间使您可以更好地处理代码,因为它可以避免与代码中的第三方库和其他类发生冲突。
- 协程是解决许多游戏问题的好工具,但它们同样难以理解和调试。如果你正在使用协程,请确保你知道自己在做什么。请了解他们如何在顺序和并行模式下工作等等。如果您想进一步了解协程,请查阅 Unity3D 的官方手册。
- 当您在代码中发现 bug 时,断言可能是您最好的朋友。您可以使用 Unity.Assertions.Assert 类来使用断言。
- 扩展方法非常有利于提高您的语法可读性和管理能力。
- 本地化应该存放在单独的文件中。每个文件只保留一种语言。
这是一个在LiveEdu上为Unity初学者设计的教程
如果你对 Unity 的编程还只是处于初学阶段,没有关系,我们这儿有一位大神可以手把手教你如何掌握 Unity 基础操作技巧,最终创造属于你自己的游戏。内容包括:安装与设置、利用 GitHub 来学习、场景控制、用 C# 编程以及 Unity 的其他一些重要功能。该教程在 LiveEdu 上独家收录,可以点此链接观看。
五大调试改进技巧
调试可能是一个难题。通过适当的调试,您可以为发行游戏做好妥善的准备,并确保游戏成品质量保持在较高水平。让我们开始学习 Unity 的一些调试技巧吧。
- 掌握 Unity 中可用的调试工具。Unity 中的调试工具提供了很多功能,包括可以有效帮助您调试游戏的函数。利用诸如 Debug.Break,Debug.Log,Debug.DrawRay 和 Debug.DrawLine 等函数。前两个函数用于了解游戏总体状态,而最后两个函数可帮助您直观地调试游戏。您也可以使用调试可视化检查器来查找运行时私有字段。
- 由于 Unity 不提供任何特殊的 IDE,您可以选择使用任何 IDE 进行开发工作。掌握 IDE 调试功能也是一个好主意。查看 Visual Studio 的调试文章以了解更多信息。
- Unity 发布了许多测试工具。您可以查看它们并改进您的调试方法。您也可以在这里查看 Unity 测试工具教程。另外,您可以使用可用的工具来运行 Scratchpad 测试。Scratchpad 测试更加传统,并不要求您运行场景。
- 如果与扩展结合使用,控制台日志可能会非常有用。例如,您可以使用 Console Pro 增强功能使您的控制台变得无比强大!
- 在调试可视化动画时,您需要尝试不同的方法。可视调试器可以帮助您做到这一点,它会随时间生成图表。例如,您可以使用 Monitor Components 来执行此操作。
五大性能改进技巧
加强你的游戏优化是成功游戏的必经之路。游戏本身可能还不错,但仍然会受到性能问题的困扰。而且,运行效果不佳的游戏肯定会遭到终端用户差评。为了确保您的 Unity 游戏已得到很好的优化,请尝试以下技巧:
- 在开始优化游戏之前,您需要找出性能问题的来源。对于初学者来说,找出它是否来自 GPU 或 CPU 是个好主意。找出罪魁祸首将帮助你更好地处理优化工作,因为 GPU 和 CPU 具有不同的性能优化策略。
- 性能优化很重要,但请不要编写复杂且难以维护的代码。您应该根据能够在多大程度上提高性能来做出决定。如果提高不大,请忽略它。如果提高很大,请保留它们并为其他人编写适当的代码文档以利于查看。
- 尝试在场景中共享物体材质以提高每个场景的性能。
- 通过降低游戏分辨率来检查游戏是否运行得更顺畅。如果出现这种情况,请使用更好的材料和算法使它能够在更高的分辨率下流畅运行。
- 使用性能分析器来了解和跟踪性能问题。
资深游戏开发者在 LiveEdu 上讲解如何用 Unity3D 和 C# 制作 2d 跑酷游戏
结语
游戏开发是一项复杂的工作,需要掌握不同的技能。以上技巧将帮助您令游戏开发得更加精致。另外,这些技巧只不过是冰山一角。您还需要在实践中掌握技巧,在工作中学习提高。如果您是 Unity 游戏开发者,则可以通过在 LiveEdu 上分享展示您的作品以吸引观众。该平台还提供独特的反馈价值,因为其他游戏开发者通过分享他们的想法帮助改善社区,从而和受众打成一片。
工作流程,编程,调试,性能:Unity游戏开发者应该学习的20个改进技巧的更多相关文章
- Re:Unity游戏开发有哪些让你拍案叫绝的技巧?
这是我在知乎一个问题: <Unity游戏开发有哪些让你拍案叫绝的技巧?> 下面的回答,觉得蛮有趣的,贴在这里和博客的朋友们分享下. ----- 分享一个比较好玩的内容吧. 大家都知道Uni ...
- 2017年Unity游戏开发视频教程(入门到精通)
本文是我发布的一个Unity游戏开发的学习目录,以后我会持续发布一系列的游戏开发教程,都会更新在这个页面上,适合人群有下面的几种: 想要做独立游戏的人 想要找游戏开发相关工作的人 对游戏开发感兴趣的人 ...
- 知物由学|游戏开发者如何从容应对Unity手游风险?
本文由 网易云发布. "知物由学"是网易云易盾打造的一个品牌栏目,词语出自汉·王充<论衡·实知>.人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不 ...
- 关于Unity游戏开发方向找工作方面的一些个人看法
这是个老生常谈,却又是谁绕不过去的话题,而对于每个人来说,所遇到的情况又不尽相同,别人的求职方式和路线不一定适合你,即使是背景很相似的两个人,有时候机遇也很重要. 我本人的工作经验只有一年,就业方式 ...
- OpenStack各组件逻辑关系、通信部署关系及工作流程
一. OpenStack组件之间的逻辑关系 OpenStack 是一个不断发展的系统,所以 OpenStack 的架构是演进的,举个例子: E 版本有5个组件 Compute 是 Nova:Imag ...
- springmvc 运行原理 Spring ioc的实现原理 Mybatis工作流程 spring AOP实现原理
SpringMVC的工作原理图: SpringMVC流程 . 用户发送请求至前端控制器DispatcherServlet. . DispatcherServlet收到请求调用HandlerMappin ...
- 凉鞋:我所理解的框架 【Unity 游戏框架搭建】
前言 架构和框架这些概念听起来很遥远,让很多初学者不明觉厉.会产生"等自己技术牛逼了再去做架构或者搭建框架"这样的想法.在这里笔者可以很肯定地告诉大家,初学者是完全可以去做这些事情 ...
- 【Unity游戏开发】记一次解决 LuaFunction has been disposed 的bug的过程
一.引子 RT,本篇博客记录的是马三的一次解决 LuaFunction has been disposed 的bug的全过程,事情还要从马三的自研框架 ColaFrameWork 说起.最近,马三在业 ...
- 【Unity游戏开发】用C#和Lua实现Unity中的事件分发机制EventDispatcher
一.简介 最近马三换了一家大公司工作,公司制度规范了一些,因此平时的业余时间多了不少.但是人却懒了下来,最近这一个月都没怎么研究新技术,博客写得也是拖拖拉拉,周六周天就躺尸在家看帖子.看小说,要么就是 ...
随机推荐
- yum 安装Apache
1.查看是否安装Apache,命令: rpm -qa httpd 2.yum install httpd ,yum安装Apache 3.chkconfig httpd on s ...
- tomcat增加处理线程数量
修改server.xml <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" ma ...
- Mysql中给有记录的表添加唯一索引
ALTER IGNORE TABLE neeqs ADD UNIQUE KEY `unique` (`seccode`, `enddate`, `f002v`);
- JavaScript的基础学习
由js和python想到的: 弱类型语言 js 中的数据在进行算数运算时,会自动转换类型强类型语言 变量的值的数据类型一旦确定,使用时不能改变 动态语言:编译时不知道数据类型,只有在执行时才知道数据类 ...
- 使用交互式方式在SQL server2017上创建数据库
软件基础:在电脑上提前安装好SQL server2017,并且安装好其中的SSMS(SQL server Management Studio) 创建方式:交互式 操作内容:创建学生课程数据库系统 步骤 ...
- jquery mouseout mouseover 多次执行
用jquery,mouseout,mouseover,随着鼠标移动,事件被触发了多次(冒泡),换成js onmouseover,onmouseout也是一样.最终的解决办法是,用jquery,mous ...
- Flume报 Space for commit to queue couldn't be acquired. Sinks are likely not keeping up with sources, or the buffer size is too tight
报这个错误 需要一个是flume堆内存不够.还有一个就是把channel的容器调大 在channel加配置 type - 组件类型名称必须是memory capacity 100 存储在 Channe ...
- 华为防火墙USG5500-企业双ISP出口
需求:(1)技术部IP地址自动获取,网段为192.168.10.0/24,该部门访问Internet的报文正常情况下流入链路ISP1. 总经办IP地址自动获取,网段为192.168.20.0/24,该 ...
- BZOJ 4551[Tjoi2016&Heoi2016]树(树链剖分+二分)
Description 在2016年,佳媛姐姐刚刚学习了树,非常开心.现在他想解决这样一个问题:给定一颗有根树(根为1),有以下两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记 ...
- 初始Spring MVC——练手小项目
初始Spring MVC 前几天开始了我的spring学习之旅,由于之前使用过MVC模式来做项目,所以我先下手的是 Spring MVC,做个练手项目,非常简单 项目介绍: 用户输入信息 -> ...