前面几个部分对于可能在unity中可能使用到的C#部分进行了分部介绍,但是未来在开发过程中可能会遇到更多问题,碰到具体项目以后会再对C#专栏进行更新。
现在进入Unity的基础部分进行介绍。
从官网下载unity2020.
1:新建项目
打开UnityHub中新建项目
2:界面详解
打开Unity,则可看到几个界面
Hierachy:层级面板,管理游戏场景中的所有资源,比如代码和游戏物体等
Scene:场景面板,用于调整游戏场景中的各种游戏物体的位置,一个游戏可以有多个场景,登录场景、副本、竞技场、关卡等。
Game:游戏场景面板,实际的玩家视角
Project:项目面板,用于管理项目中的所有资源
*我们在创建项目时,一定要养成管理的好习惯,所有的代码或者场景,必须严格按照其编号排列
Inspector:检查面板,可以理解为属性窗口,查看Hierachy或Project中的资源属性
console:控制台面板,用来显示代码运行结果等
这些面板可以通过拖拽等方式进行改变大小,也可以通过Window→Panel中进行自动调整
也可以通过Window→General中进行查找
unity的设计思想是基于组件,角色可以移动,角色可以播放动画,UI可以点击等大量操作都是基于组件来实现的。
我们在场景中创建一个3D物体→Cube,然后点击Cube,会看到它的组件
分别为:
Transform(移动)组件:有位置(Position)、旋转角度(Rotation)、缩放比例(Scale),可以根据实际进行修改。
Mesh Filter(网格过滤器)组件:可以查看具体每一个组件的网格精细化程度,图中的cube由24个vertices(顶点),12个triangle(三角形)所构建的网格组成,网格其实是三角形的数量,三角形数量越多,模型也就越精细
Mesh Renderer(网格渲染器)组件:
——Materials(材料):Materials中有个圆圈,点击可以选择默认材质,当然我们自己也可以建立材质,在Assets中重新创建文件夹Materials
——Lighting组件(灯光):投影工具,可以通过管理投影
——Probes组件(探针)
——Additional Settings(补充设置)
Shader(着色器)组件
自定义C#组件
1:创建组件
project面板右键创建C#脚本(记得严格分类管理)→将脚本拖拽到游戏物体即可
2:组件的特点
继承了MonoBehaviour的类都是组件
unity中创建的脚本默认就是继承了MonoBehaviour的
只有组件才能够挂载到游戏物体身上
3:组件的学习方法
1:Inspector面板,组件在Inspector面板中一般都会有一些属性可以设置,那我们需要研究的是这些属性的设置对于游戏物体有什么影响
2:部分Inspector面板中的属性,我们因功能需求使用脚本来控制变化
比如我们在C#进行如下的修改再返回unity
public class L2_4_Demo : MonoBehaviour
{
public string Name;
public int ID;
void Start()
{
Debug.Log(666);
}
因为我们public了两项内容,所以在Inspector面板中我们可以查找到相关变量,当然这只是简单的演示,具体的在Unity中的C#脚本设计,我们会再开一个文章详细介绍
当然unity的组件非常多,上面只是介绍了一个物体创建时基本的一些组件,我们可以通过Inspector中的Add Component来添加组件
1:Scene界面的工具栏
右键Hierachy可以创建unity中内置的一些物体
其中有cube(方块),Sphere(圆),Capsule(胶囊),Plane(平面)等
我们可以看到上方的操作工具列表
手型工具(Hand tool),快捷键Q,用来拖动场景
移动工具(Move tool),快捷键W,用于移动模型位置
旋转工具(Rotate tool),快捷键E,用于旋转模型
缩放工具(scale tool),快捷键R,用于放大缩小模型
Rect tool工具,可以在2D界面改变物体大小
移动&缩放模型,快捷键Y,可以同时移动和旋转,缩放。(较少用到)
toggle tool handle position(图左):Center是以场景为中心进行的操作,Piovt是以自己为中心移动。
Toggle tool handle rotation(图右):Center是以自己为中心,Global是以世界坐标为中心旋转。
2:保存和快捷复制
Ctrl+s为保存场景
Ctrl+d为快速复制,可以为物体,可以为场景
3:约束与吸附
变化约束:移动,缩放,旋转时按住Ctrl可以约束移动距离,缩放程度,旋转程度等,具体的约束程度可以在Edit→Grid and Snap(网格对齐)中设置。
相当于按住ctrl键以后,每一种操作都会有一定的设定值,以此设定值为尺度,进行每一次的变化
模型吸附:选择模型后按V,选择吸附位置再拖拽到需要吸附的位置上,选中一个模型按住V,选择一个点,然后对齐到另一个物体的端点,就能实现拼接
1:预制体的概念
预制体:预先制作好的游戏物体,我们在游戏之前,肯定是提前制作好的物体,然后看啥时候需要引用的。
2:预制体的创建
直接将游戏物体拖拽到项目面板,Unity会自动为我们生成一个预制体
3:预制体的使用
将预制体从项目面板中拖拽到层级面板中来达到复用的效果
·基于预制体创建的游戏物体比较接近“引用关系”,我们修改预制体会直接导致场景中的游戏物体发生变化
·预制体被删除,不会影响游戏中的游戏物体,但是游戏物体会在层级面板中变成红色,意味着预制体被删除了,我们可以在层级面板中右键取消这种引用关系,让这个游戏物体变成普通游戏物体
·预制体的修改具备特殊性,需要双击进入“异世界”进行编辑。
4:预制体的修改
预制体可以套娃
1:原始预制体:一个完全独立的预制体
2:预制体变体:旧的预制体变化,变体也会发生变化,但是变体保留和旧的预制体不同的部分
变体:
创建预制体的过程中,如果游戏物体已经是预制体,Unity会弹窗提醒我们选择创建模式
在预制体或者预制体变体进行相应的操作,并不会影响原来的与制图