Unity学习笔记
基本操作:(了解概念和何时使用,步骤在需要的时候再去查找)
1.定点吸附:选择物体后按住V键,定位定点,再拖拽到目标物体某个定点上。
2.Clipping Planes:如果项目远处地形资源等无法看见需要调节相机裁剪平面的距离。
3.culling mask:图层可以通过控制剔除遮罩来改变能不能看见该图层。
4.persp:透视观察模式、ISO(正交观察模式)
5.场景:一组相关联的游戏对象的集合,通常游戏中每个关卡就是一个场景,用于展现当前关卡中的所有物体。
6.游戏对象:运行时场景中的游戏物体。一个游戏对象就是一个容器,可以挂载组件。
7.组件:是游戏对象的功能模块,每个组件都是一个类的实例。
8.camera:可以制作小地图和后视镜等功能。
9.材质:物体的质地,指色彩、纹理、光滑度、透明度、反射率、折射率、发光度等,实际是shader的实例。
10.Texture:附加到物体表面的贴图。
11.shader着色器:专门用来渲染图形的技术,可以使纹理以某种方式展现。是一段代码、程序。
12.物理着色器PBS:遵从物理学的能量守恒定律,可以创建不同光照下接近真实的效果。
13.InstantOC:
①Occlusion culling:遮挡剔除,物体被送进渲染流水线之前,将摄像机视角内看不到的物体进行剔除,从而减少每帧渲染数据量,提高渲染性能。
因此在物体被别的物体遮挡的时候,需要用到遮挡剔除。
②LOD(Levels of Detail):多细节层次,根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的
面熟和细节度。因此在精细模型离相机较远时使用糙模,在近距离时使用细模。近清远模。
14.
15.profiler(Ctrl+F7):电脑使用性能情况等信息。
16.光照系统:
①Global illumination(全局光照):能够计算直接光(光源直接发出)、间接光(物体表面发射出的光)、环境光以及反射光的光照系统。
②设置阴影,阴影的渲染消耗性能。包括是否投射阴影及阴影剔除。
③烘焙(Baked):将光线效果预渲染成贴图再作用到模拟物体,从而提高性能。
17.命名空间(namespace):命名空间就是类的集合;引用集合中的类时需要在类名中使用所选的前缀。
18.InputMange :定义用户输入(Edit-Project-Settings-Input) bool result = Input.GetButton("虚拟轴名") float value = Input.GetAxisRaw("虚拟轴名") ….. P153
19.关节组件五大类:
①链条关节:将两个物体以链条的形式绑在一起,当力量过大超过链条的固定力矩时,两个物体就会产生相互的拉力。
②固定关节:将两个物体永远以相对的位置固定在一起,即使发生物理改变,它们之间的相对位置也不会发生改变。
③弹簧关节:将两个物体以弹簧的形式绑定在一起,挤压它们会得到向外的推力,拉伸它们会得到两边对中间的拉力。
④角色关节:可以模拟角色的骨骼关节,可以绕骨骼节点任意角度旋转。
⑤可配置关节:可以模拟任意关节的效果,包括上面的四种效果,最强大也是最复杂的。
20.力场组件:力场是一种为刚体快速添加恒定作用力的方法。
①Force:用于设定在世界坐标系中使用的力,向量表示。
②Relative Force:用于设定在物体局部坐标系中使用的力。
③Torque:设定在世界坐标系中使用的扭矩力,向量表示,对象将依据该向量进行转动,向量越长转动越快。
④Relative Torque:设定在局部坐标系中使用的扭矩力,向量表示,对象将依据该向量进行转动,向量越长,转动越快。
3D数学(向量、欧拉角、四元数、坐标系统)
向量:世界坐标指向物体的射线,用以判断方向
API:向量的模float dis = vector.magnitude、vector.distance(vector3.zeor,dis);
获取向量方向也称“标准化”“归一化”;
向量的方向Vector3 vector2 = vector1.normalized,verctor2为vector1的单位向量,vector1.normalize();将vector1自身设置为单位向量;
三角函数:已知一边一角,求其他边与角。
API:Mathf.Sin(float radian)、Mathf.Cos(float radian)、Mathf.Asin(float radian)等
欧拉角:使用三个角度来保存方位。X与Z沿自身坐标系旋转,Y沿世界坐标系旋转。
欧拉角没有方向和大小的概念,属于向量类。欧拉角的xyz表示各个轴向上的旋转角度。 范围0-90°;具有万向节死锁:物体沿X轴旋转±90°,自身坐标系Z轴与世界坐标系Y轴将重合,此时再沿Y或Z轴旋转时,将失去一个自由度。X轴旋转限制在-90°到90°之间,沿Y轴与Z轴旋转限制在0-360°之间。
API:Vector eulerAngle = transform.eulerAngles;
四元素:在3D图形学中代表旋转,由一个三维向量和一个标量组成。旋转轴自定义,旋转弧度为θ。
特性:四元数左乘向量,表示将该向量按照四元数表示的角度旋转。四元素和四元素相乘代表旋转角度的叠加。
API:Quaternion qt = new Quaternion();
坐标系统
世界坐标(World Space):整个场景的固定坐标,在游戏场景中表示每个游戏对象的位置和方向。
局部坐标(Local Space)-:每个物体独立的坐标系,原点位模型轴心点,随物体移动或旋转而改变,表示物体间相对位置与方向。
屏幕坐标(Screen Space):以像素为单位,屏幕左下角为原点,右上角为屏幕宽、高度(Screen.width、Screen.height),Z为相机的距离,表示物体在屏幕中的位置。
视口坐标系(Viewport Space):屏幕坐下为原点,右上角为(1,1),Z为到相机的距离,表示在摄像机中的位置,以比例表示。
坐标转换:见代码脚本。
物理引擎
模拟真实世界中物理特性的引擎。(两者具有碰撞组件、运动的物体具有刚体组件)
刚体:让物体具有物理特性。
属性:物体质量Mass、空气阻力Drag(移动时受到的空气阻力)、角阻力Angular Drag(旋转时受到的空气阻力)、是否运动学Is Kinematic(是否受物理引擎控制)、插值Interpolate(缓解刚体运动时的抖动)、碰撞检测Collision Detection(设置碰撞检测频率)、约束Constrains(对刚体运动的约束)
碰撞器:判断两个物体是否接触的物理边界。
碰撞具有三阶段,其自带的属性或方法见官方手册。
触发器:带有碰撞器组件,且Is trigger属性被勾选的物体,无碰撞效果
触发具有三阶段,其自带的属性或方法见官方手册。
物理材质:赋予材质摩擦力、弹力等特性
UGUI(Unity Graphical User Interface)控件、Event、Itween P207
零碎知识:
Html与unity3d的交互:Application.External-Call()调用任何在HTML网页里定义的JavaScript函数,unity3d插件或者ActiveX控件都有一个SendMessage()的函数,HTML网页通过通过这个函数与unity3d进行通信,通过该函数可以传递对象名、函数名以及简单参数,SendMessage()会调用unity3d中的GameObject上绑定的函数。调用函数前必须先得到unity web player的引用
项目设置里的质量:阴影调节等,
脚本方法执行顺序:先把全部脚本的awake方法执行完再执行所以脚本的start方法。
不同物体对象可以赋予不同的标签和图层,图层相当于类,标签相当于对象名。
脚本往物体上一挂便成了一个对象,对象是对类的引用,对象之间通过引用连接。
类(对象的变量、事件、方法)、对变量的具体阐述、类的属性是生来就有的。
Invoke(被执行的方法,开始调用时间);适用于延时调用
如果将物理阶段的执行的脚本放到update里面会出现画面乱抖的情况。
unityWebRequest:提供一个方法来和网页通信,UnityWebRequest.Get、UnityWebRequest.Post、UnityWebRequest.Put
B站教程视频链接:史上最全Unity3D教程_哔哩哔哩_bilibili