[转]Unity开发之-Unity入门简介(近万字攻略)

前言

大家好,我是一个Unity的程序员,从这篇开始我会持续更新学习Unity的基本,去帮助想要学习unity的小伙伴,有兴趣的同学可以跟着我一起学习Unity,下面,我们将要开始了解Unity以及想要制作一款游戏需要具备的知识。

制作不易还请各位一键三连哦!

本文下面介绍的是Unity关于游戏开发的一些知识,也欢迎想基本了解Unity大家前来观摩,准备好,马上开车了!

文章目录

  • 前言
  • unity的学习路线
    • 第一阶段 什么是Unity?
    • 第二阶段 C#编程
    • 第三阶段 熟悉Unity引擎的基本功能
        • Unity资源文件的学习
        • Unity基本组件的介绍
        • Unity中UI系统的介绍
        • Unity动画的介绍
        • Unity导航寻路网格
        • Unity数据持久化
    • 第四阶段 了解基本的框架
        • 基础框架的学习
        • Unity热更新
    • 第五阶段 游戏项目实战
  • 总结

unity的学习路线

下面是我个人当前学习列表的简介,仅供参考。
请添加图片描述

当你学完第三个阶段的时候,就可以做一款属于自己的小游戏了,请各位发挥大脑的想象力吧。

下面我们慢慢的介绍每个阶段的基本信息吧

第一阶段 什么是Unity?

要想学好一个东西,首先要对其有基本的了解,并且对其感兴趣,我相信既然大家以及看到了这里,就代表大家对Unity有一些兴趣,下面我们介绍以下Unity:
Unity3D是由Unity Technologies开发的一个能让玩家轻松创建诸如三维游戏、虚拟现实、实时电 影与动画、建筑可视化、数字教育、汽车/运输与制造等众多类型互动内容的多平台的综合型游戏开 发工具,是一款功能强大的专业游戏引擎。Unity类似于Director,Blender,Virtools或Torque Game Builder等利用交互的图形化开发环境为首要方式的软件。
小编是因为参加工作以后才接触到的Unity,因为之前是一个初级Java程序,所以重新学习一个新的语言和软件并不难。
下面简单介绍以下用Unity开发的游戏吧:
网页游戏:坦克英雄、QQ乐团、蒸汽之城、诛仙、皇牌海战、绝代双骄、Touch、纵横无双、星之 战记、骑士的远征(已停止运营)、萌战记、推倒Online、格子RP、图腾王、争锋OnLine、喷喷战 (已停止运营)、魔偶给我冲、木乃伊OL(The Mummy Online)、魔晶星球、将神、天宠岛等

客户端游戏: Robocraft、 Bad Piggies
在这里插入图片描述

手机游戏:纪念碑谷(Monument Valley)使命召唤手游、择天记、王者荣耀、失落帝国、炉石传 说、神庙逃亡2、三国之杀场、王者之剑、弹珠冒险记、死亡扳机(DEAD TRIGGER)、对峙2 (Standoff 2)、公路战士(Road Warrior)机器人大战(Roboto)、绝命武装(Bravo Force: Last Stand)、阿尔龙:剑影(Aralon:Sword and Shad)、街头摔跤 ( Street Wrestler)、缪斯 (M.U.S.E.)、疯狂的公牛(Bull Dozer)、等

单机游戏:奇异人生: 仙剑奇侠传6、风暴前夕、巫师之昆特牌:王权的陨落、七日杀、侠隐阁、轩辕 剑六、御天降、凡人修仙传单机版、深海迷航(美丽水世界)、卡车人生等。

用Unity开发的游戏数不胜数,市场上一半以上的游戏都是用Unity引擎开发的。
Unity还有一个极大的好处,Unity支持跨平台,也就是说,用Unity开发的游戏和作品是支持很多的平台的,Unity编辑器可运行在Windows、Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、WebGL (需要HTML5)、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac所支持。

再给大家介绍以下常见的几种游戏类型:

第二阶段 C#编程

上面的介绍让我们对Unity引擎有了初步的了解,可是我们光靠着Unity引擎是不能开发游戏的,需要有我们的脚本的支持(不然要我们程序员干嘛)。所以,想要开发游戏之前,先要学会一门脚本编程语言。

  • Unity 2017版本以后,官方推荐使用的脚本语言是C#。Unity的历史版本中支持过UnityScript,不过使用的人比较少,之后就消失了
    除了C#外,.Net平台支持的语言(如:F#,C++)等,都可以编译为通用的DLL库。关于.Net的详细讨论的话,暂时超出了小编的脑容量范围,请大家自行查询。
  • 所以学习C# 语言变为我们最重要也是最先的一步,网上有很多的C#的教程,当然,后续小编会持续更新C#的语言学习,各位可以跟随小编的脚步。

在这里插入图片描述

第三阶段 熟悉Unity引擎的基本功能

  • 看完Unity的介绍后,相信大家对Unity也有了一定的了解,但是重中之重还是先学习C#脚本语言
  • 先认识以下Unity的基本页面
  • 我们需要利用Unity来制作游戏,所以必须熟悉Unity的基本编辑环境
  • 熟悉基本的工具栏和六个最基本的视图
  • 以及一些基本的设置
    在这里插入图片描述

Unity资源文件的学习

这里我们主要了解Unity 的文件资源分类

  • 每个文件夹的作用
  • Unity需要基本运行的文件夹
  • 特殊文件夹的作用

在这里插入图片描述

Unity基本组件的介绍

  • 组件是Unity中最重要的一部分
  • 每个游戏物体的身上都有很多不同的组件,正因为每个组件的功能不同,所以实现的效果各不相同
  • Unity显示的组成是项目-> 场景->游戏物体->组件->组件参数
  • 组件和游戏物体相辅相成,游戏物体可以说是组件的载体
  • 下图包含了一些基本组件,一定要熟练使用Transfrom组件,Box Collider(盒子碰撞体),Mesh Filter(网格过滤器),Mesh Renderer(网格渲染器),Rigidbody(刚体)
  • 值得注意的是,代码脚本,也是一种组件
    在这里插入图片描述

Unity中UI系统的介绍

  • Unity包含了GUI,UGUI,NGUI(老版本才会用)
  • 游戏需要UI页面,用来显示一些按钮啊,图片啊等。所以UI是一个完整游戏的必须品
  • 我们主要学习Unity自带的UGUI就足够了
    在这里插入图片描述

Unity动画的介绍

正如大家看到的游戏人物一样,每个人物都会攻击,跑步,跳跃等,这些都是由Unity优秀的动画系统来完成的。

  • 动画可以使人物更加炫酷
  • Unity中现在有两种动画模式Animator和Animation
  • 前者比较新,后者是比较老的项目才会使用了
    在这里插入图片描述

Unity导航寻路网格

Unity为大家提供了自动寻路的功能Navigation,例如我们玩的页游都有点击任务自动寻路过去,Unity现在的寻路已经很强大了,只需要添加几个组件并且调整几个参数即可进行寻路

  • 敌人自动寻找玩家
  • 玩家自动寻找到任务地点
  • 也有很多人会使用A*算法进行寻路,不过个人推荐使用Navigation就好,简单易懂

在这里插入图片描述

Unity数据持久化

Unity中提供了一些数据持久化的方式,将我们的游戏数据保存在本地磁盘上,这样在下一次再次使用时就可以直接读取本地,而不是每次推出游戏或者删除后台所有的东西都会消失

  • Unity自带的PlayerPrefs类,适合一些轻量级数据
  • JSON适合一些敌人的基本信息等
  • CSV配置表可以使用Excel清楚的观察表格参数
  • XML可以读取一些配置

第四阶段 了解基本的框架

框架学习就属于进阶学习了,因为当你学好了前三个阶段,就可以做游戏了
对于许多语言而言,有一个好的框架代码可以重复利用多次,节省时间,而且方便后期的维护,Unity开发游戏也是如此:

  • 一个框架可以使代码干净整洁,方便维护
  • 最大程度的将一些基本操作重复利用
  • 方便每个开发人员进行代码的整合调用

基础框架的学习

  • 常用到的框架当属UI框架了,一个UI框架可以重复利用UI,对性能的节省是很有必要的
  • Unity非常火的框架GameFrameWork框架,小编也没有学会,感兴趣的童鞋可以自己上网查看

Unity热更新

我们经常玩的很多游戏,就比如当下很火的王者荣耀,每一次赛季更新都会有很大的变化,这个时候大家通常都会到应用商店下载并重新安装,可是每次新赛季更新开启后,都或多或少会有一些Bug存在(一个完整的程序不可能没有bug,是人都会犯错)而这些问题,可能只需要更改一句代码就可以解决,而不需要动用很大版本的更新,这个时候总不能再重新下载安装吧,要是这样的话,那每次下载安装岂不是没法玩游戏了,这个时候,热更就显得尤为重要。

  • 热更新就是指一些小幅度的更新,不需要重新下载安装包,甚至不需要重新启动游戏
  • 使用热更新需要使用一门新的语言Lua,Lua是一门轻量级语言,后面作者会介绍到的
  • 有些游戏是单纯用Lua做出来的,感兴趣的同学去网上搜索一下

第五阶段 游戏项目实战

当所有准备工作都准备完毕后,我们就可以开始编写自己的游戏了,大家可以去Unity官方的中文课堂:https://learn.u3d.cn/,那里有很多的课程教程,免费的付费的都有,如果需要资源的话可以去Unity官方商店下载:https://assetstore.unity.com/,作者后期还会更新一些自己做的小游戏,飞机大战,塔防游戏,基础的3D游戏等。

总结

这里我们简单讲解游戏开发中的角色和职责也可以说是小伙伴们学习Unity可以寻找的工作岗位:

  1. 游戏策划:作为游戏和核心玩法大脑,策划通常起着决定游戏风格和走向的作用,这其中还包括很多的细节分化:
    1. 主策划(游戏策划主管):又称为游戏策划主管。游戏项目的整体策划者,主要工作职责在于设计游 戏的整体概念以及日常工作中的管理和协调。同时负责指导策划组以下的 成员进行游戏设计工作。
    2. 系统策划(游戏规则设计师):系统规则的编写 -> 与程序设计者对接 -> 组队、战斗、帮会、师徒、好友系统等 -> 提供界面及界面操作、 逻辑判断流程图
    3. 数值策划(游戏平衡设计师):游戏平衡性-> 游戏数据打交道 ->战斗公式
    4. 关卡策划(游戏关卡玩法):设计游戏关卡玩法,与剧情策划相对接
    5. 剧情策划(游戏文案策划):文字内容设计 -> 职业物品说明 -> 世界观架构
  2. 游戏美术:
    1. 原画设计师(3D美术部门):美术制作提供标准 和依据 ->依据策划案创建角色或物体 -> 概念具体化和标准化 ->游戏世界物体设计
    2. 角色设计师(创造栩栩如生的角色): 游戏中的活体 -> 人体组织结构
    3. 场景设计师(传达游戏内涵与文化):构建场景模型 -> 烘托游戏的气氛
    4. 游戏特效师(精美的效果):丰富的画面表现想象力 -> 艺术感染力
    5. UI设计师(平面基础):游戏操作页面 -> 技能标志 -> 登录页面 -> 游戏道具
  3. 游戏程序:
    1. 服务端:数据存储,数据分发,数据同步
    2. 客户端:引擎开发即扩展,游戏效果,游戏逻辑


以上就是对一些Unity游戏行业的个人见解啦,还有一些学习路径,后续小编会为大家更新C#的学习,欢迎大家搬凳子坐坐,最后和各位道个别,拜拜。
 

你可能感兴趣的:(unity,游戏引擎)