零基础小白如何自学 Unity 游戏开发?(送 Unity 教程)

Posted 敬 之

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了零基础小白如何自学 Unity 游戏开发?(送 Unity 教程)相关的知识,希望对你有一定的参考价值。



如何自学 Unity?

有很多同学对 游戏开发 很感兴趣,但都不知道从何学起,缺乏目的性,往往会走不少弯路,本文正是为了帮助大家少走弯路。

“游戏开发”看似只有四个字,但涉及的内容有很多,包括 UI、建模、绘画、动画系统、粒子系统、图形学、物理系统等等。内容多需要学习的知识也就多,那么学习之后如何巩固知识呢?答案就是两个字“成果”,我们在学习游戏开发的过程中必须要能够看到成果,让成果做知识的依托,其实也就是边学习、边开发,在制作一个个游戏案例的过程中来反复的巩固和补充基础知识,最终形成自己对游戏开发的全局认识。当我们接触足够多的案例、写了足够多的代码后,对面需求也可以立即想到自己的解决方案。

初级阶段:学习编程语言

游戏开发的学习应该先从 编程语言 开始,只有懂得了语法才能够表达自己的观点。先学编程语言再游戏开发就类似于先学文字再文学创作。比如我们想让玩家向前移动两米,就得用编程语言来告诉电脑让其实现,Unity 支持多种语言开发,新手建议使用 C#,该语句用 C# 实现如下:

Position = Vector3.MoveToward(2,...)

学习 C# 我推荐 Unity 官方的 C# 初级编程 课程,该课程以脚本在游戏中的使用的切入点,逐步过渡变量、函数和语法,还会介绍 Unity 的一些常用操作。

初级阶段:编程实践

当我们学习 C# 编程语言以及了解 Unity 的常用操作之后,就可以进行开发实践了。作为新手,开发的第一个游戏可选择 Unity 官方 Bilibili 账号的 Roll-a-ball 游戏开发课程。该游戏简单且全面,及其适合新手上手开发实战。

经过这门课程的学习的之后,我们将熟悉 Unity 编辑器各方面功能的使用,对如何制作游戏也会有大体的认知。

中级阶段:继续学习编程语言

在经历完上面的学习之后,我们就来到了中级阶段,首先继续补充基础编程知识,推荐学习 Unity 官方的 C# 中级课程,里面的内容则是进一步扩充我们的技术栈,包括继承、多态、接口、协议等,这些也是游戏开发的重中之重。

Unity 教程赠书活动

Unity 游戏开发教程:《从零开始学Unity游戏开发:场景+角色+脚本+交互+体验+效果+发布》

本书由资深游戏开发者结合高校实际教学经历,汇总 10 余年游戏开发经验,专为初学者倾心打造少走弯路的 Unity 实用知识与全流程实践的丰富案例。书中穿插零基础小白学习 Unity 常踩的坑的注意事项,让学习事半功倍。附赠 120 多分钟案例详解视频 +3GB 的案例原始工程文件。

内容简介

近年来,越来越多的游戏开发爱好者开始关注 Unity 引擎,相比于其他引擎,Unity 有强大的资源商店和跨平台能力,而且容易上手,目前已成为游戏开发行业的主流选择,受到了大量开发者的青睐。

本书共有 10 章内容,以认识 Unity 引擎开始,从 0 到 1 突破,循序渐进地介绍了 Unity 游戏开发的方方面面。采用知识点讲解、经验技巧与相应的动手练习相结合的方式,将一个完整的游戏案例以章节任务的形式贯穿其中,系统地讲解如何从最基本的熟悉 Unity 界面操作开始,一步步搭建起游戏场景,让其逐渐丰富生动起来,并能与玩家进行交互,然后添加 UI 界面完善游戏流程,增强游戏的画面效果和视听体验及游戏的真实性,最终形成一款相对完整的成品游戏,并将游戏成品打包发布到不同的平台,供其他玩家上线体验的全过程。

作者简介

房毅成,10 余年游戏开发从业经历,Unity、VR 等领域的早期开发者,曾任游戏主程、项目经理、游戏制作人等,热衷于技术研究和知识分享,兼具在线教育培训讲师及高等院校外聘教师等身份。研发的游戏作品曾屡获殊荣,有数十款应用于各行各业的商业产品,拥有丰富的项目管理、教学研究和技术开发实战经验。

赠书方式

在此文章页面:

  • 点赞 + 收藏 + 关注博主
  • 评论 “我要学 Unity 游戏开发!” 或其他优质评论
  • 我将从评论区随机抽取(由程序随机抽奖)两位幸运者送出《从零开始学Unity游戏开发:场景+角色+脚本+交互+体验+效果+发布》一本。(免费包邮)

从FrameDebugger看Unity渲染

从FrameDebugger看Unity渲染(一)

Unity如何渲染一个3D+2D的游戏画面,今天通过FrameDebugger来看下Unity内置渲染管线的渲染策略, 后续再出一些URP渲染管线相关的文章。

对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。

Unity 渲染场景的几个主要部分

Unity内置渲染管线是基于摄像机来进行渲染的,每个摄像机按照摄像机的渲染顺序来依次渲染,渲染完一个摄像机,再渲染下一个摄像机。对于UI 2D而言,相当于也是一个独立的UI摄像机,还有一种特殊的OnGUI会绘制2D GUI物体,走的是GUI Paint。如图所示 FrameDegbuger 最外层的截图如下:

FrameDebugger显示渲染有3个部分,第一个是Camera.Render, 表示的是基于场景中的摄像机引起的渲染。第二部分UGUI.Rendering.RenderOverlays,表示的UGUI中2DUI引起的渲染。第三部分GUI.Repaint, 表示的是OnGUI引发的2D UI物体渲染; 如果你的项目中没有OnGUI的渲染物体,FrameDebugger中就不会有相关的显示。第一部分Camera.Render里面有每个摄像机按照摄像机的渲染顺序依次次排列下来。如图所示,目前场景中有两个摄像机,FrameDebugger按照摄像机的渲染顺序一次排列下来。

Unity 摄像机渲染处理哪些事情?

如上图所示,每个摄像机有3个部分,第1部分UpdateDepthTexture是处理阴影投影相关。如果整个场景中没有实时的阴影投影,就不会有这一部分。第2部分Drawing是具体的绘制物体相关, 第3部分Camera.ImageEffects相关是摄像机的后期处理相关。展开 UpdateDepthTexture, 分为了Clear与DepthPass.Job两个部分,如图所示:

Clear是清理, DepthPass.Job详细的记录里面哪些物体做了ShadowCaster Pass。展开Drawing部分, FrameDebugger根据场景中涉及到的渲染队列,一次进行渲染,如下图所示,首先是Render.Opaque渲染队列,随后是Render.Transparent渲染队列。

Unity 摄像机范围外的物体不会被渲染

FrameDebugger中详细的显示了在当前帧中Unity实际渲染了哪些物体。在摄像机范围内的物体会被Unity渲染,不在摄像机范围内的物体,是不会被摄像机渲染的。渲染物体时,还会做阴影计算,从阴影纹理里面获取阴影数据。

当前帧中在当前摄像机下渲染了哪些物体,都能通过FrameDebugger看清楚。点击FrameDebugger中的每个渲染物体,就能对应到场景中的具体的物体。

被渲染物体的详细信息

最后Unity渲染每个物体的时候,我们能够看到渲染时候的详细信息,如图所示:

Event #554: 第554次绘制事件;

Shader: 渲染这个物体采用的是哪个Shader的哪个SubShader;

Blend: 着色到目标的颜色混合规则;

ZClip: 开启片元深度检测模式,如果一个片元在near与far的外面就会被丢弃;

ZTest:深度测试的规则,根据通过深度测试的才会被渲染;

ZWrite: 是否将当前片元的深度信息写入深度缓存;

Cull: 裁剪剔除的模式,有back, front, none三种模式,分别是裁剪剔除掉背对摄像机的面,裁剪提出掉真对摄像机的面和不裁剪剔除。

Why Drawcall cannot be batched?:不能合批的原因描述;

ShaderProperties: CPU传递给GPU的数据的详细信息;

今天的FrameDebugger与渲染的分享就到这里了,关注我们,获取更多的渲染优化相关的教程与知识。

以上是关于零基础小白如何自学 Unity 游戏开发?(送 Unity 教程)的主要内容,如果未能解决你的问题,请参考以下文章

适合小白的游戏开发学习路线图

如何自学unity3d

适合小白的Java零基础自学方法,从零基础到大神之路

从FrameDebugger看Unity渲染

python自学攻略:教你如何从零基础小白飞升牛逼大神

Unity黑巧克力 滚球游戏 入门级教程