学习内容概要:
软件面板功能、材质球、预制体、摄像机、灯光、鼠标键盘输入、组件、刚体、碰撞体、PC端游戏打包发布....
第1课:课程介绍与Unity3D环境搭建
1.Unity3D,一个游戏开发引擎。
2.Unity3D从业,手游(60%)、页游(10%)、VR/AR等(30%)。
3.Unity3D开发优势,一次开发多平台发布。
4.基础前提:编程语言C#、英语、数学
5.下载与安装:
Unity3D:https://unity3d.com/cn/get-unity/download/
注册机(4.x/5.x):http://pan.baidu.com/s/1dFedmMX 密码:09p6
6.软件目录结构:
Unity5.x
|----Editor:Unity3D核心文件
|----MonoDevelop:一款内置脚本编辑软件
第2课:游戏场景基本操作
1.新建项目:
①打开 Unity,在 Projects 面板上输入“Project name”(项目名称);
②然后在“Location”中选择本地存储位置;
③选择“3D”模式;
④点击“Create Project”按钮,即可完成项目的创建。
2.项目存储结构:
|----Assets:资源文件夹,保存游戏所有的资源。
|----Library:库文件夹,保存项目需要的库文件。
|----ProjectSettings:项目设置文件夹,保存项目的设置信息。
|----Temp:临时文件夹,保存项目的临时数据。
3.面板布局,选择Default布局方式。
4.新建场景Scene,File-->New Scene(Ctrl + N)新建场景。
5.基础面板:
Scene面板:场景面板,用于预览当前的场景。
Project面板,项目面板,用于管理当前项目中所有的资源。
Assets:对应项目文件夹中的Assets文件夹。
为了更好管理我们的游戏资源,我们回在Assets中见创建不同的文件夹,用来存储不同的游戏资 源。如:“Scenes”文件夹,用来存储游戏场景。
Hierarchy面板,层级面板,用于显示当前场景中有哪些资源。在这个面板中可以往场景中添加资源。创建3D物体:Hierarchy面板右键-->3D Object-->Cube(立方体)
6.常用的5种3D物体:
1.Cube,立方体。
2.Sphere,球体。
3.Capsule,胶囊体。
4.Cylinder,圆柱体。
5.Plane,平面。
在层级面板中,双击某个物体(F),可以在Scene面板中聚焦到该物体。
7.Scene面板基础操作:
1.工具栏功能:
手型(Q),平移场景的观察角度。
箭头(W),移动物体的位置(箭头:固定方向移动;面:平行于该面移动)
旋转(E),旋转物体。
缩放(R),缩放物体。
2.鼠标功能:
左键,选中物体。
中键,按下-->平移场景的观察角度;滚动-->拉近拉远视角。
右键,旋转观察角度(自身为转轴)。
3.鼠标和键盘组合功能:
Alt+鼠标左键,旋转观察角度(鼠标所在点为转轴)。
Alt+鼠标右键,拉近拉远。
第3课:游戏场景制作3D模型
1.尺寸,以Cube作为参照,长宽高都是1米。
2.方向,分物体坐标系和世界坐标系。可以通过工具栏上的“Local”“Glocal”来切换显示。
X(红色):右边
Y(绿色):上边
Z(蓝色):前边
3.世界坐标观察模式:
Persp:透视模式,近大远小。
ISO:正交模式,远近一样大。
4.快捷键:
Ctrl + D:复制物体
F:快速聚焦某个物体
工具栏对应:Q W E R T
第4课:3D模型美化之材质球
1.材质球,Material,材质:物体的质地,物体看起来试什么做的。
通常放在Assets下的Materials文件夹。
2.贴图,Texture,就是“普通的图片”,用于材质球的显示。
通常放在Assets下的Textures文件夹。
3.Inspector面板,属性面板,用于查看和编辑游戏物体和项目资源的具体属性。
4.编辑材质球,选中材质球,Inspector-->Albedo(纹理贴图/漫反射贴图)-->选中材质
5.使用材质球,将材质球拖拽到Hierarchy/Scene面板上的物体上。
6.Shader,着色器,通过着色器来编辑材质球的效果。
第5课:3D模型重用之预制体
1.父子关系:
原则:移动父亲,儿子会跟着移动,就像移动电脑上的一个文件夹,文件夹中的
资源会跟着一块移动。
在 Hierarchy 面板中,任意两个物体都可以建立父子关系。
2.预制体,Prefab,预先准备好的物体,可以重复利用。
通常放在Assets下的Prefabs文件夹。
3.创建预制体,直接将Hierarchy面板中的游戏物体拖拽到Assets中,即可创建一个预制体。
4.预制体的好处,编辑其中的一个,“Apply”一下可实现全部改变。
第6课:基本组件之摄像机
1.材质球之Tiling,设置x,y,使贴图分块显示。
2.Game视图,游戏视图,游戏的预览(运行)窗口。
注意:游戏在运行状态时,做的任何操作都不会被保留。
3.摄像机(Camera),在合适的位置和角度观察游戏世界。
创建摄像机,Hierarchy 面板右键-->Camera。
视锥体,摄像机的观察区。
对齐视图(Ctrl+Shift+F),让摄像机对齐到当前视图,使 Scene 与 Game 中的观看角度和位置一致。
属性:
Clear Flags(清楚标记),Skybox:天空盒,Solid Color:固定颜色(纯色)
Background[背景颜色],当 Clear Flags 为 Solid Color 时,场景的背景颜色。
Projection[投影],Perspective:透视模式,3D 游戏使用。Orthographic:正交模式,2D 游戏使用。
Clipping Planes[切割面],调整视锥体的大小,Near:近平面,摄像机最近能看到的东西。Far:远平面,摄像机最远能看到的东西。
第7课:基本组件之灯光
1.灯光light,照明。
2.方向光Directional Light,用于模拟太阳光,自然光。
3.创建方向光,Hierarchy 面板右键-->Light-->Directional Light
4.属性:
Type[类型],切换灯光类型。
Color[颜色],设置灯光的颜色。
Intensity[强度],设置灯光的照射强度。
Shadow Type[阴影类型],设置被照射物体的阴影效果。
1.No Shadows:无阴影
2.Hard Shadows:硬阴影
3.Soft Shadows:软阴影
5.点光源Point Light,用于模拟电灯泡光。
6.属性:
Range[范围],设置点光源的照射范围,一个球状范围。
7.聚光灯Spot Light,用于模拟聚光灯照射效果。
8.属性:
Spot Angle[聚光角],设置聚光灯的照射角度。
第8课:组件与脚本
1.组件Component,游戏物体得组成的零件。
2.Transform组件,所有游戏物体都具备的一个基础组件,用于存储游戏物体的基本信息。
Position:位置;
Rotation:旋转;
Scale:缩放;
3.C#脚本,用于控制游戏的逻辑。
4.在Assets文件夹中创建"Scripts"文件夹,管理脚本资源。
5.创建脚本, Assets 件上右键-->Create-->C Script,C #脚本件的后缀是“.cs”。
6.脚本代码简介,
Start()方法:当游戏运行起来,就会马上执行,且只执行一次。
Update()方法:循环方法,每帧调用一次。一秒钟大概执行60次。
Debug.log()方法,输出调试。
7.使用脚本,直接将脚本拖拽到物体身上或物体的Inspector面板上。
8.Console面板,用于输出显示游戏运行过程中的调试信息。
Clear,清除功能,清除控制台中的信息。
Collapase,折叠功能,将相同的内容合并到一条显示,更新后面的信息条数。
Clear on Play,运行时清除之前的内容。
第9课:鼠标键盘输入
1.获取键盘输入代码:
Input.GetKey(); 按下某键后,持续返回true
Input.GetKeyDown(); 按下某键的一瞬间,返回true
Input.GetKeyUp(); 抬起某键的一瞬间,返回true
返回值:bool类型
参数:KeyCode枚举(Enum),KeyCode:键码,保存了物理键盘按键“索引码”。
2.获取鼠标输入代码:
Input.GetMouseButton(); 按下某键后,持续返回 true
Input.GetMouseButtonDown(); 按下某键的一瞬间,返回 true
Input.GetMouseButtonUp(); 抬起某键的一瞬间,返回 true
返回值:bool 类型
参数:鼠标按键索引值,0->左键 , 1->右键 , 2->中键。
第10课:使用变换组件移动游戏物体
1.gameObject.GetComponent<T>(); 获取相应组件的引用。
2.Transform.Translate(Vector3, Space); 移动物体的位置。
游戏物体往某个方向移动;以自身坐标系或世界坐标系。
Translate移动会“穿透”场景其他模型,移动的物体不受重力影响。
相关参数:
Vector3[struct]:三维向量。
向量,可以表示一个方向,也可以表示一个位置。
Vector3.forward:表示往前方走1米。
Space[enum]:空间。
Space.Self:表示物体自身的坐标系。
Space.World:表示物体所在的世界坐标系。
第11课:物理组件之刚体
1.刚体Rigidbody,物理类组件,赋予物体物理属性质量等。
给物体添加刚体组件:选中游戏物体-->菜单 Component-->Physics-->Rigidbody
刚体组件属性:
1.Mass[质量]:设置物体的质量,也就是重量。质量单位是 KG。
2.Drag[阻力]:空气阻力,0 表示无阻力,值很大时物体会停止运动。
3.Angular Drag[角阻力]:受到扭曲力时的空气阻力,0 表示无阻力,值很大时物体会停止运动。
4.Use Gravity[使用重力]:是否使用重力。
2.Rigidbody.MovePosition(Vector3):使用刚体移动物体的位置。
使用刚体移动物体,物体是根据世界坐标系的方向移动的。
使用刚体移动物体,物体会触发物理相关的事件。
相关参数:
MovePosition中的 Vector3 要使用“当前位置”+ 方向 的方式。
Transform.Position:属性 当前物体的位置。
使用刚体移动物体,特点如下:
①会于场景中的模型物体发生碰撞;
②会受重力影响(到达场景边缘外,会下落)。
第12课:物理组件之碰撞体
1.碰撞体Collider,使用刚体移动的物体,与场景中其他的物体相碰撞。
2.添加碰撞体组件:选中游戏物体-->菜单 Component-->Physics-->Xxxx Collider
3.在 Unity 中创建的基本模型,自身都带有碰撞体组件。
4.4类常用碰撞体:
盒子碰撞体Box Colliderm,形状是立方体形,用于包裹类似“立方体”的模型。
Center[中心点]:设置 Box Collider 的中心点。
Size[大小]:设置 Box Collider 的大小。
球形碰撞体Sphere Collider,形状是球形,用于包裹类似“球形”的模型。
Radius[半径]:设置 Sphere Collider 的大小。
胶囊碰撞体Capsule Collider,形状是胶囊状,用于包裹“胶囊形”的模型。
Height[高度]:设置 Capsule Collider 的高度。
Direction[方向]:设置 Capsule Collider 的高度方向(轴向)。
第13课:刚体常用方法介绍
1.AddForce(),给刚体添加一个力,让刚体按“世界坐标系”进行运动。
Rigidbody.AddForce(Vector3,ForceMode);
Vector3:力的方向和大小;
ForceMode:力的模式[enum 类型]。
Acceleration:[əkˌseləˈreɪʃn](加速度);
Force:(力)这种模式通常用于设置真实的物理;
Impulse:(冲击力)这种模式通常用于瞬间发生的力;
VelocityChange:(速度的变化);
2.AddRelativeForce(),给刚体添加一个力,让刚体按“自身坐标系”进行运动。其余同AddForce相关相同。
3.FixedUpdate(),固定更新方法,默认固定更新的时间间隔是 0.02 秒,1 秒执行 50 次。
Edit-->Project Settings-->Time 面板中的Fixed Timestep参数设置。
所有和物理相关的操作代码都要写在FixedUpdate()方法体力。
第14课:刚体碰撞事件监测与处理
1.碰撞事件,当一个用刚体控制运动的物体与另一个物体碰撞时就会触发碰撞事件。
目标物体必须带有Collider组件
2.三种碰撞事件监测方法:
OnCollisionEnter(Collision),当碰撞开始时调用,只会调用该方法一次。
OnCollisionExit(Collision),当碰撞结束时调用,只会调用该方法一次。
OnCollisionStay(Collision),当碰撞进行中时,会持续调用该方法。
Collision 参数,碰撞,一个类。作用:用于传递碰撞信息。
Collision.gameObject 属性,与当前物体碰撞的物体的引用。
gameObject.name 属性,当前物体的名字。
第15课:刚体触发事件监测与处理
1.触发器,碰撞体Collider属性面板上“Is Trigger”选项选中,碰撞体变成触发器。
移动的刚体物体会穿透碰撞体勾选了“Is Trigger”的物体。
2.触发事件,当一个用刚体控制的物体进入到另外一个物体的触发器范围内,就是触发事件。
3.三种触发事件监测方法:
OnTriggerEnter(Collider),当进入触发范围时开始时调用,只会调用该方法一次。
OnTriggerExit(Collider),当离开触发范围时开始调用,只会调用该方法一次。
OnTriggerStay(Collider),在触发范围内,会持续调用该方法。
Collider参数,碰撞体,一个类。作用:用于传递触发信息。
Collider.gameObject 属性,进入触发范围内的目标物体的引用。
gameObject.name 属性,当前物体的名字。
第16课:网格组件之网格过滤器和渲染器
1.网格过滤器组件Mesh Filter,该组件只有一个“Mesh”属性,用于设置当前游戏物体使用哪个模型进行展示。
2.网格渲染器组件Mesh Renderer,该组件用于“渲染”显示模型。如果没有该组件,模型就不会显示。
Cast Shadows [投射阴影]:On:开启阴影显示;Off:关闭阴影显示;
Receive Shadows [接收阴影]:选中就是接受,反之则不接受。
Materials [材质球]:用于设置用哪个材质球渲染当前的模型(Mesh)。

Unity3D游戏开发入门学习笔记相关推荐

  1. Cocos Creator游戏开发教程 学习笔记

    学完提问几个问题吧: position的锚点位置数值原点在哪里? 因为position是相对坐标,所以原点是父节点的锚点 .所以Canvas下面的直属节点原点就是世界坐标系的原点Canvas的锚点. ...

  2. Unity3D游戏开发工作学习随笔[序](主要讲述自己学习和工作的经历,先不谈技术和知识)

    起 虽然在前两年,21年大学课程结束,实习的时候,是入了Java开发的坑. 那时候没有想清楚,只是该学的学了,涉猎的多,但又没有专精,也没有仔细的思考以后的就业方向,也缺少对人生,理想,这些东西的方向 ...

  3. 微信小游戏 腾讯课堂《白鹭教育 - 成语大挑战小游戏开发》学习笔记

    腾讯课堂<白鹭教育 - 成语大挑战小游戏开发>:https://ke.qq.com/course/287266 学习笔记 首先这个视频课程简单介绍了一个小游戏的制作,包括新建项目.适配模式 ...

  4. Web前端html5+css3前端开发入门学习笔记

    文章目录 前言 HTML 认识HTML 1. 网页组成和本质 2.了解浏览器 3.web标准 4.HTML感知 5.HTML骨架 6.编译软件vscode的简介和使用 7.注释 8.标签组成和关系 9 ...

  5. 《3D数学基础:图形与游戏开发》 学习笔记(一)

    (以下学习笔记为本人最近在学习本书的时候所记载,之中还加入了一些做项目过程中遇到的问题,以及相关知识的补充.笔者水平有限,文中不足之处,还请给予指正,谢谢~) 1.将左手坐标系变换到右手坐标系,只需改 ...

  6. C#程序员的春天之从零开始学习unity3D游戏开发入门教程二(创建项目及基本面板介绍)...

    一项目创建: 创建项目是开发的第一步. 运行untiy之后如果是第一次运行会弹出 我们这里随便创建一个项目. 二Untiy面板介绍: 三代码编辑器的切换: 这里我安装了vs2012. 到这里开发环境基 ...

  7. java web开发入门学习笔记(手打超细版)

    我刚实习的时候写的,先分享分享吧,当时写的也不容易.有错的话请指出,博主会修正,适合入门小白当资料使用.包括包括java基础.数据库.js.jQuery.css.html等等知识点. 详细笔记内容如下 ...

  8. 制作菜单栏、选择题、搓组合键、小僵尸-unity3D游戏开发入门

    0.键盘事件 任务一:编写菜单栏 任务二:做一道单项选择题 任务三:写多项选择题(多选错选不得分,少选得一半分,80分以上赏朵小红花) 任务四:键盘键响应 通过敲ASDW方向键在屏幕上打出相应方向箭头 ...

  9. Unity3D游戏开发案例学习——Tanks!(基本完结)

    [2020.1.12] 概述 本案例来自unity官方中级游戏教程Tanks(单机双人坦克大战) 项目同时用于Unity机器学习内容的学习,预定计划为训练可规避障碍物,欲图消灭玩家的坦克ai 第一部分 ...

最新文章

  1. fatal error lnk1561: 必须定义入口点_链表中是否有环以及找环的入口问题总结
  2. (chap4 IP协议) CIDR协议
  3. 看不懂花书?博士教你如何深入深度学习,从编程基础到完整的项目实战
  4. QT的QSpinBox类的使用
  5. 史上最全的Linux常用——目录和文件管理命令——收藏这一篇就够了!(超全,超详细)
  6. bzoj5090[lydsy11月赛]组题
  7. selenium python下载_使用Selenium、Chrome和Python下载PDF
  8. 【数据结构与算法】分离链接法散列表的Java实现
  9. C#LeetCode刷题之#705-设计哈希集合​​​​​​​(Design HashSet)
  10. 案例:Oracle 11g RAC 数据库连接数过高处理办法
  11. 计算机考试67,计算机等级考试(国家)-二级c机试模拟67.doc
  12. LeetCode Rearrange String k Distance Apart
  13. java角色权限设计
  14. Saved Blogs
  15. whatamitoyou-小白详解
  16. C语言关于变量定义未使用编译警告warring
  17. 华为荣耀笔记本linux系统怎么样,荣耀笔记本和华为笔记本有什么区别
  18. postgresql时间差计算
  19. ruihu 1.6MT
  20. 《神经质的实质与治疗》读后感

热门文章

  1. 水表读数图解_水表怎么看,教你轻松看懂水表读数
  2. JQuery- JQuery学习
  3. 静态路由的配置 简单实验图解
  4. 050002《马云说》读后感——勇者无畏
  5. 阿里撤退百度放弃,应用商店十年神话终落幕
  6. 使用太乐地图下载器下载cesium适用瓦片
  7. 使用vfork、exec系列函数、wait/waited实现system函数的功能
  8. matlab 读pdf文件内容,matlab读文件.pdf
  9. 基于SSM+Bootstrap【爱校教务系统管理系统】附源码
  10. Android 事件分发机制分析及源码详解