技术标签: c# unity Unity学习资料 编程语言 Unity精品学习专栏️ 游戏 # Unity 基础知识学习
- 博客主页:https://blog.csdn.net/zhangay1998
- 欢迎点赞 收藏 留言 如有错误敬请指正!
- 本文由 God Y.原创,首发于 CSDN
- 未来很长,值得我们全力奔赴更美好的生活
先来看一张我整理的Unity学习路线图,大致可以分为这样几个阶段,不一定必须按着这个来,但还是有参考价值的!
一般来说,学到第三阶段就可以自己做一些小游戏玩了,后边两个阶段都属于进阶学习了!
下面我们来详细的介绍一下各个阶段的内容
先了解Unity是什么,才能继续开始学习下去,在之前的文章里也单独介绍过Unity的背景故事和Unity的特色介绍
Unity是一个游戏引擎,也就是所谓做游戏的一个工具,市面上有很多做游戏的引擎,Unity就是其中一个
只不过Unity所占的市场份额比较大,市面上大部分的手游都是出自Unity引擎,包括很火的王者荣耀,炉石传说等等。
感兴趣的小伙伴也可以去参考一下,下面是我写的Unity有关于基础知识的专栏介绍,可以看一下,有些地方可能不够详细有深度,还会继续补充的
在了解完Unity的信息后,先不要着急的去学习Unity的其他知识
要先来学习一下 C#,因为Unity中的脚本使用C#语言开发,所以C#语言学习对Unity至关重要
本来是想到脚本组件之后再提C#的,但是一想到C#是Unity开发必备语言,也是做Unity必须要会的一门语言
所以学习C# 应该才是学习Unity的第一步!
这里的话大家可以自行在网站上找一些图文资料或者视频资料看一下就行啦,也不太需要去花钱付费的
毕竟**C#**相对其它语言还是比较容易上手的
我这里也写过关于C#基础知识介绍的文章,感兴趣的小伙伴也可以来参考一下
当然也可以在网上找一些大佬写的!
在了解完什么是Unity之后,我们应该明白,Unity就是一个可视化的工具引擎
我们需要利用这个工具来创造出一系列的作品
这一块内容主要是让我们学会怎样使用Unity这个游戏引擎,来进行项目的开发
包括菜单栏、六大视图等等的使用,这一点必须要学会,才能好好的利用Unity这个工具!
这块内容主要是对Unity引擎中的一个架构和物理系统的认识
包括怎样切换场景,怎样创建脚本,并使用脚本开发
如何使用Unity物理引擎中的刚体和碰撞,来模拟一个真实的物理效果!
还有触发器和射线,都是使用Unity开发过程中需要学会的
地形系统也需要学习一下,自己做一些地形地图之类的,学会简单使用就好,一般也不会经常制作地形。
这块包括Transform组件、Mesh Filter(网格过滤器)和Mesh Renderer(网格渲染器)、Collider (物体碰撞器)、刚体(RigidBody)、脚本等等
还是要将组件这一块做到熟练使用最好
包括写代码的脚本,也是组件的一种!
UI这块不用多说,也是一个必备技能,而且要精通才行
一般刚入门接触最多的就是UI系统了
UI系统有好几种,包括UGUI、GUI、NGUI等等
这里的话也不用管别的,学好UGUI就够用了,UGUI也是Unity主推的一个UI系统
这块主要是学习UI中一个常用控件的使用就好了
把UGUI中的基础控件搞明白就差不多了
我这里也写过一篇针对UGUI控件学习的文章,可以参考一下
动画系统在3D游戏制作中,是肯定会用到的,包括模型的各种动画效果制作等等
Unity中有两种动画系统,分别是Animator和Animation
现在的话主推使用Animator,Animation是老版本使用比较多的了!
我之前也写过一篇万字教程对Unity中的动画系统做了一个较为详细的介绍,大家感兴趣的可以去看一下
导航系统也是一个知识点,用来做寻路系统之类的会用到,Unity有一个自带的导航系统Navigation
也有很多人使用A*寻路算法,这块也需要用心钻研才行!
数据存储这块在网游涉及的比较多,在一些单机游戏涉及到数据存储的时候当然也会用到
这也算是一个必备技能吧
包括解析XML、JSON 和数据库的使用等等,都需要去学习!
还有 Unity中协程的学习,也是必不可少的会用到。
Shader是Unity用于材质渲染的一部分,使用Shader可以做出一些非常精美的材质效果
包括水流波纹等等,Shader也是一块重要的功能,一般也有专门的人员负责这一块
想学到很精通还是很麻烦的,一般Unity开发的程序达到入门即可~
到这一步的话,其实已经算是Unity入门了,架构学习就是偏向进阶学习了
一起来简单介绍下吧,毕竟到这一块我也是很乏力了~
学会Unity使用之后,有很多功能实现并不需要我们自己从头到尾去做了
就像很多语言都有“框架”这一说,就好比设计模式一样,可以重复利用的功能就可以整理成一个框架方便之后使用
这里的话要学会UI框架的使用
还有数据库框架、Socket框架等,这些属于进阶内容,能学会最好啦!
热更新,可能有小伙伴不理解热更新是啥
这里举个例子介绍一些,比如王者荣耀经常会更新版本
小版本更新的时候,我们不需要去应用商店重新下载更新,而是在游戏中会跳出一个更新包,直接点击下载完就可以继续游戏了
都不要重新打开游戏就行。
当然在大版本更新的时候,还是需要下载完重新安装,这也是没办法啦~
热更新这块是使用Lua语言编写的
要使用热更新就需要再学习一门语言,就是Lua了
网上也是有几种常用的Lua框架可以使用,感兴趣的小伙伴也可以去学习一下
有些游戏甚至是全部使用Lua语言做出来的,所以Lua也是一个重点哦~
AssetBundle是用来打包工程中的资源的
一般针对不同类型的资源会打包到不同的包里,这样在更新的时候就可以更方便的下载了
看下面一张简单的图介绍
到这一步就是自己制作游戏进行实战练习了
不知道该做什么游戏进行练习的,我推荐先去做一个坦克大战
这也是官方教程里面的,包括资源包之类的,都是很基础的功能实现,对新手超级友好
我自己也写了几个小游戏制作,包括坦克大战。飞机大战、炸弹人等,后续还会更新的
也可以去文章参考一下哦:Unity小游戏制作专栏
这一阶段就是高级知识了,包括图形学中的各种操作,和底层渲染逻辑等等
我也没学会哈哈,只是简单提一下,对图形学感兴趣的小伙伴可以自行找一下教程学一下
学会了就可以去做游戏中的美术分工了!
说完了Unity的知识学习路线,这里简单提一下Unity中可从事的职业分工
- unity可以分为三个团队,分为策划,程序,美术。
- 策划:系统策划,数值策划,关卡策划,剧情策划,任务策划
- 程序:服务端,客户端,工具开发,运营数据系统
- 美术:原画组,3D建筑,3D角色,骨骼动画,粒子特效,地形编辑,UI界面
当然所有分工之上还有一个开发总监,大家对Unity感兴趣的可以看看哪种适合自己哦~
我这里也有一些学习资源,也是我学习的时候下载整理的,包含C#的思维导图、视频学习和Unity的思维导图学习资料
如果大家想学习的话可以9.9下载学习,学习资料下载
毕竟写文整理不易,大家有需要的可以下载学习顺便当做支持博主啦~
当然自己在网上找一些资源学习也可以~
本篇博文对Unity的学习路线做了一个较为详细的学习路线,不知道对你有没有帮助呢~
觉得博主写得还不错的三连支持下吧!会继续努力的~
文章浏览阅读2.9k次,点赞8次,收藏14次。测试主要做什么?这完全都体现在测试流程中,同时测试流程是面试问题中出现频率最高的,这不仅是因为测试流程很重要,而是在面试过程中这短短的半小时到一个小时的时间,通过测试流程就可以判断出应聘者是否合适,故在测试流程中包含了测试工作的核心内容,例如需求分析,测试用例的设计,测试执行,缺陷等重要的过程。..._测试过程管理中包含哪些过程
文章浏览阅读870次,点赞16次,收藏19次。1.背景介绍政府数字化政务是指政府利用数字技术、互联网、大数据、人工智能等新技术手段,对政府政务进行数字化改革,提高政府工作效率,提升政府服务质量的过程。随着人工智能(AI)和机器学习(ML)技术的快速发展,政府数字化政务中的人工智能与机器学习应用也逐渐成为政府改革的重要内容。政府数字化政务的人工智能与机器学习应用涉及多个领域,包括政策决策、政府服务、公共安全、社会治理等。在这些领域,人工...
文章浏览阅读219次,点赞2次,收藏4次。系统主要的用户为用户、管理员,他们的具体权限如下:用户:用户登录后可以对管理员上传的学习视频进行学习。用户可以选择题型进行练习。用户选择小程序提供的考研科目进行相关训练。用户可以进行水平测试,并且查看相关成绩用户可以进行错题集的整理管理员:管理员登录后可管理个人基本信息管理员登录后可管理个人基本信息管理员可以上传、发布考研的相关例题及其分析,并对题型进行管理管理员可以进行查看、搜索考研题目及错题情况。_mysql刷题软件
文章浏览阅读1.4k次。myelipse里有UML1和UML2两种方式,UML2功能更强大,但是两者生成过程差别不大1.建立Test工程,如下图,uml包存放uml类图package com.zz.domain;public class User {private int id;private String name;public int getId() {return id;}public void setId(int..._根据以下java代码画出类图
文章浏览阅读174次。需求:一个topic包含很多个表信息,需要自动根据json字符串中的字段来写入到hive不同的表对应的路径中。发送到Kafka中的数据原本最外层原本没有pkDay和project,只有data和name。因为担心data里面会空值,所以根同事商量,让他们在最外层添加了project和pkDay字段。pkDay字段用于表的自动分区,proejct和name合起来用于自动拼接hive表的名称为 ..._flume拦截器自定义开发 kafka
文章浏览阅读380次。原标题:Java Spring中同时访问多种不同数据库 多样的工作要求,可以使用不同的工作方法,只要能获得结果,就不会徒劳。开发企业应用时我们常常遇到要同时访问多种不同数据库的问题,有时是必须把数据归档到某种数据仓库中,有时是要把数据变更推送到第三方数据库中。使用Spring框架时,使用单一数据库是非常容易的,但如果要同时访问多个数据库的话事件就变得复杂多了。本文以在Spring框架下开发一个Sp..._根据输入的不同连接不同的数据库
文章浏览阅读3.6k次,点赞9次,收藏25次。本案例描述了晶振屏蔽以及开关电源变压器屏蔽对系统稳定工作的影响, 硬件设计时应考虑。_eft电路图
文章浏览阅读1.1k次。对于物料价格的更改,可以采取不同的手段:首先,我们来介绍MR21的方式。 需要说明的是,如果要对某一产品进行价格修改,必须满足的前提条件是: ■ 1、必须对价格生效的物料期间与对应会计期间进行开启; ■ 2、该产品在该物料期间未发生物料移动。执行MR21,例如更改物料1180051689的价格为20000元,系统提示“对于物料1180051689 存在一个当前或未来标准价格”,这是因为已经对该..._mr21 对于物料 zba89121 存在一个当前或未来标准价格
文章浏览阅读7.4k次,点赞3次,收藏13次。[文章导读]联想启天M420是一款商用台式电脑,预装的是win10系统,用户还是喜欢win7系统,该台式机采用的intel 8代i5 8500CPU,在安装安装win7时有很多问题,在安装win7时要在BIOS中“关闭安全启动”和“开启兼容模式”,并且安装过程中usb不能使用,要采用联想win7新机型安装,且默认采用的uefi+gpt模式,要改成legacy+mbr引导,那么联想启天M420台式电..._启天m420刷bios
文章浏览阅读2.7k次,点赞2次,收藏9次。一,为什么要冗余数据互联网数据量很大的业务场景,往往数据库需要进行水平切分来降低单库数据量。水平切分会有一个patition key,通过patition key的查询能..._保证冗余性
文章浏览阅读88次。是时候闭环Java应用了 原创 2016-08-16 张开涛 你曾经因为部署/上线而痛苦吗?你曾经因为要去运维那改配置而烦恼吗?在我接触过的一些部署/上线方式中,曾碰到过以下一些问题:1、程序代码和依赖都是人工上传到服务器,不是通过工具进行部署和发布;2、目录结构没有规范,jar启动时通过-classpath任意指定;3、fat jar,把程序代码、配置文件和依赖jar都打包到一个jar中,改配置..._那么需要把上面的defaultjavatyperesolver类打包到插件中
文章浏览阅读909次。1.得下载一个番茄插件,按alt+g才可以有函数跳转功能。2.不安装番茄插件,按F12也可以有跳转功能。3.进公司的VS工程是D:\sync\build\win路径,.sln才是打开工程的方式,一个是VS2005打开的,一个是VS2013打开的。4.公司库里的线程接口,在CmThreadManager.h 里,这个里面是我们的线程库,可以直接拿来用。CreateUserTaskThre..._番茄助手颜色