技术标签: 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的学习路线做了一个较为详细的学习路线,不知道对你有没有帮助呢~
觉得博主写得还不错的三连支持下吧!会继续努力的~
文章浏览阅读871次,点赞11次,收藏3次。*单片机设计介绍, 基于51单片机冰箱温度控制器设计。_基于51单片机的智能冰箱控制系统设计
文章浏览阅读4.8k次。一、sftp服务器进入root模式(下面的操作默认都是在root用户下)#安装openssh-serverapt-get install -y openssh-server创建sftp的组和用户#创建sftp-users组groupadd sftp-users#创建sftp用户目录alicemkdir /home/alice#创建sftp用户alice,并且绑定其主目..._ubuntu sftp服务器查看用户和密码
文章浏览阅读5.9k次,点赞9次,收藏16次。解决了在simulink中使用s-function遇到的报错:State derivatives returned by S-function 'demo' in 'test/S-Function' during flag=1 call must be a real vector of length 2 _state derivatives returned by s-function 'pmsm' in 'ipmsm/ipmsm/s-function1
文章浏览阅读3.1k次。1. 打开配置文件Mac 如下图2. 在文件内部添加这段文字,就可以了:"update_check":false _mac sublime text 取消更新提示
文章浏览阅读548次,点赞10次,收藏6次。Linux系统下DNS配置指南_linux 服务器修改网络dns
文章浏览阅读779次,点赞19次,收藏24次。springboot微信小程序的小疾病问诊服务系统的设计与实现。springboot基于spring的物业管理系统的设计与实现。springboot基于Java的高校学生请假系统。ssm基于Android的购物商场APP设计与实现。springboot基于微信小程序的智慧校园系统。ssm基于Android的英语词典的设计与开发。ssm基于SSM+Vue的学生实践管理平台开发。ssm基于android的企业员工考勤系统。ssm基于web的暗香小店系统的设计与实现。ssm基于Web的高等学校公费医疗管理系统。
文章浏览阅读551次,点赞23次,收藏7次。mit6.824的lab1,实现MapReduce_mitmapreduce实现csdn
文章浏览阅读6.6k次,点赞10次,收藏82次。在刚开始学Android开发时,下载好了Android studio,但是不知道如何下手,现在就通过一个简单的小项目熟悉如何使用这个软件进行Android开发。前提:下载好Android studio并配置好相关环境。首先介绍一下Android开发过程中需要修改的三类文件:位于java包下的各类activity文件:实现了用户与软件的交互,主要为java代码实现。位于res包下的.xml文件:在layout包里的为布局文件,即Android界面显示的视图,而drawable里则放置了某个控件的_android studio简单项目
文章浏览阅读3.5k次。一、Bootstrap 弹出框弹出框控件类似于提示框,它在鼠标点击到元素后显示,与提示框不同的是它可以显示更多的内容。注意: 弹出框要写在 jQuery 的初始化代码里: 然后在指定的元素上调用 popover() 方法。1.1 基本弹出框通过向元素添加 data-toggle=“popover” 来来创建弹出框。title 属性的内容为弹出框的标题,data-content 属性..._bootstrap 弹出框
文章浏览阅读226次,点赞2次,收藏3次。本项目设计了一款可以触摸控制的天气显示器。主要由Wemos D1 Mini Pro和TFT显示屏组成,利用Wemos D1 Mini Pro作为设备的主控芯片,发出Wi-Fi信号并接收相应指令,通过调用API将接收到的信息传输到TFT显示屏,TFT显示屏将接收到的信息显示出来。该天气显示器实现对所在地区当前的时间与日期;当日的天气信息,如温度、压力、湿度、降雨量;七天的未来预测等功能的显示。设计采用Wemos D1 Mini Pro,利用API将实时获取的天气信息,通过TFT显示屏显示出来。_arduino wemos d1 mini
文章浏览阅读653次。public void initDiffDisplay() { try { DisplayManager displayManager = (DisplayManager) getSystemService(Context.DISPLAY_SERVICE); Display[] presentationDisplays = displayManager.getDisplays(); if (presentationDi._android service 检测是否双屏
文章浏览阅读530次,点赞23次,收藏10次。springboot+mybatisplus+mysql 用户端 uniapp(vue语法)管理后台 vue+elementUi。后台服务 springboot+mybatisplus+mysql。一、我们技术使用JAVA后台服务 前后端分离。管理后台 vue+elementUi。用户端 uniapp(vue语法)适配小程序+H5+公众号。私信客服获取演示地址。私信客服获取演示地址。