Unity 基础学习(unity基本组成及常用功能介绍)

这篇文章作为B站史上最全Unity3D教程自学笔记,此篇笔记内容摘自up视频中ppt,致敬up,如有侵权行为,请联系删除,谢谢!

Unity知识点学习笔记

  • 一、unity基础知识
    • I. 主要面板及作用
    • II. 常用快建键
    • I. Scene场景
    • II. GameObject游戏对象
    • III. Component组件
      • i. Transform
      • ii. Mesh Filter网格过滤器
      • iii. Mesh Renderer网格渲染器
    • IV. Material材质
      • i. 玻璃的制作
      • ii. 渐变效果
    • V. Camera摄像机
      • i. 小地图的制作
    • VI. SkyBox天空盒
    • VII. InstantOC
      • i. 渲染管线
      • ii. Occlusion Culling即时遮挡剔除
      • iii. LOD多细节层次
    • VIII. 光照系统
      • i. Global Illumination全局光照
      • ii. 实时GI
      • iii. 烘焙GI
      • iv. General GI
      • v. 光源侦测 Light Probes
    • IX. 声音
    • X. Prefab 预制件
    • XI. Animation 动画
      • i. Animation View 动画视图
      • ii. 创建动画片段
      • iii. 时间线
      • iv. 录制动画片段
      • v. 常用API函数
  • 二、脚本
    • I. 脚本生命周期
      • i. 初始阶段
      • ii. 物理阶段
      • iii. 游戏逻辑
      • iv. 输入事件
      • v. 场景渲染
      • vi. 结束阶段
    • II. 调试
      • i. 使用Unity编辑器
      • ii. 使用VS

一、unity基础知识

I. 主要面板及作用

面板 作用
Scene 游戏制作过程中看到的游戏场景
Game 玩家视角看到的游戏过程场景
Hierarchy 游戏制作过程场景中的资源列表
Project 当前项目游戏制作者拥有的资源
Inspector 显示当前物体的基本配置和挂件信息

在这里插入图片描述
   工具栏下方有多种功能选择,分别对应场景移动、物体移动、物体旋转、物体缩放、矩形缩放、多功能、添加的编辑工具、轴心位置、坐标模式切换、播放、暂停、逐帧播放

II. 常用快建键

  1. 按下鼠标滚轮拖动场景,滑动滚轮缩放场景。
  2. 鼠标右键可旋转场景,点击在这里插入图片描述后可通过左键移动场景。
  3. 按下右键同时按下W/S/A/D/Q/E键可实现场景漫游。
  4. 在Scene面板选中物体后按F键,或在Hierarchy面板双击
    物体,可将物体设置为场景视图的中心。
  5. 按住alt键同时通过鼠标左键围绕某物体旋转场景,鼠标右
    键缩放场景。
  6. Ctrl+D:复制所选物体。
  7. 按下v键,鼠标选中物体移动到目标物体让两个物体贴合在一起。
  8. 按下Ctrl,鼠标选中物体移动,每次移动固定距离。
  9. 选中某个物体,按下Ctrl+Shift+F将物体设定到当前视角位置

I. Scene场景

一组相关联的游戏对象的集合,通常游戏中每个关卡就是一个场景,用于展现当前关卡中的所有物体。

II. GameObject游戏对象

运行时出现在场景中的游戏物体,例如∶人物、地形、树木…,是一种容器,可以挂载组件。在Hierarchy面板中,将一个物体拖拽到另外一个物体中构成父、子物体关系,子物体将继承父物体的移动,旋转和缩放属性,但子物体不影响父物体。

III. Component组件

是游戏对象的功能模块,每个组件都是一个类的实例。

i. Transform

    Transform的英文释义为转换,可以理解为在unity中每一个Object都是由实物物体和虚拟形态组成,每一个Object的移动、旋转等都是通过Transform的改变来实现的,而实物物体的作用就是让玩家能够通过视觉的直观感受看到Object所作出的一系列动作。
    Transform含有三个参数PositionRotationScale分别代表Object所在位置的坐标、旋转角度和缩放大小,每个参数都是用三维坐标控制。
    Position:xyz坐标是根据Object所在的根场景所确定的,比如一个Object以整个世界为根场景,那么Position对应的就是Object所在的世界坐标,而如果以一个房子为根场景,那Position就是Object对应这个房子所在的坐标位置
    Rotation:改变xyz的大小对应以xyz为旋转轴产生相应的旋转角度
    Scale:改变xyz的值修改对应xyz方向的缩放大小

ii. Mesh Filter网格过滤器

用于从资源中获取网格信息,决定物体形状

iii. Mesh Renderer网格渲染器

从网格过滤器中获得几何形状,再根据变化组件定义的位置进行渲染,改变物体外观。
网格过滤器与网格渲染器联合使用,使模型显示到屏幕上。

IV. Material材质

物体的质地,指色彩、纹理、光滑度、透明度、反射率、折射率、发光度等。实际就是Shader的实例。

  • Shader着色器:专门用来渲染3D图形的技术,可以使纹理以某种方式展现。实际就是一段嵌入到渲染管线中的程序,可以控制GPU运算图像效果的算法。
  • Texture 纹理:附加到物体表面的贴图
    给材质添加纹理:将纹理拖拽到材质的Albedo前的方框中。
    给物体添加材质:将材质拖拽到Mesh Renderer组件的Material-Element中。
  • 渲染模式
    – Opaque不透明,默认选项。
    – Transparent 透明,用于半透明和全透明物体,如玻璃。
    –Cutout镂空,用于完全透明或完全不透明物体,如栅栏。
    – Fade渐变,用于需要淡入淡出的物体。
  • Main Maps
    Albedo基础贴图:决定物体表面纹理与颜色。
    Metallic金属:使用金属特性模拟外观。
    Specular 镜面反射:使用镜面特性模拟外观。
    Smoothness光滑度︰设置物体表面光滑程度
    Normal Map 法线贴图:描述物体表面凹凸程度。
    Emission自发光:控制物体表面自发光颜色和贴图。
    – None不影响环境
    – Realtime实时动态改变
    – Backed 烘焙生效
    Tiling平铺:沿着不同的轴,纹理平铺个数。
    Offset偏移∶滑动纹理。

i. 玻璃的制作

新建一个正方体调整大小,新建材质,将材质的Rendering Mode改为Tansparent,然后点击Albedo后的颜色选择,调节A(alpha)的大小,值越小越透明。

ii. 渐变效果

将Randering Mode改为Fade,操作同玻璃的制作。

V. Camera摄像机

附加了摄像机camera组件的游戏对象,向玩家捕获和显示世界的设备,场景中摄像机的数量不受限制

  • 自带组件
    Transform变换组件
    Camera 摄像机∶向玩家捕获和显示世界
    Flare Layer耀斑层:激活可显示光源耀斑
    GUI Layer:激活可渲染二维GUI元素
    Audio Listener音频监听器:接收场景输入的音频源AudioSource并通过计算机的扬声器播放声音。
  • 属性
    Clear Flags清除标识︰决定屏幕的空白部分如何处理
    Skybox天空盒:空白部分显示天空盒图案
    Solid Color纯色:空白部分显示背景颜色
    Depth Only仅深度:画中画效果时,小画面摄像机选择该项可清除屏幕空部分信息只保留物体颜色信息。
    Don’t Clear不清除:不清除任何颜色或深度缓存。
    Background 背景:所有元素绘制后,没有天空盒的情况下,剩余屏幕的颜色。
    Culling Mask选择遮蔽层:选择要照射的层Layer 。
    Projection投射方式:
    Perspective透视:透视图,物体具有近大远小效果。
    Orthographic正交:摄像机会均匀地渲染物体,没有透视感,通常小地图使用。
    Size大小(正交模式)∶摄影机视口的大小
    Field of view视野(透视模式)∶设置相机视野的远近距离
    Field of view裁剪面︰相机到开始和结束渲染的距离
    Near近:绘制的最近点。
    Far远:绘制的最远点。
    Viewport Rect 视口矩形∶标明这台相机视图将会在屏幕上绘制的屏幕坐标。
    X:摄像机视图的开始水平位置。
    Y:摄像机视图的开始垂直位置。
    W宽度:摄像机输出在屏幕上的宽度。
    H高度:摄像机输出在屏幕上的高度。
    Depth深度:相机在渲染顺序上的位置。具有较低深度的摄像机将在较高深度的摄像机之前渲染。

i. 小地图的制作

方法一:
    在Project面板中添加一个摄像机,命名为MapCamera,移除MapCamera的Audio Listener组件,并调整摄像机位置及旋转角度,使得摄像机可以观察到整个地图(如果要制作跟随主角移动的小地图,可以将摄像机设置为主角的子物体)。
    将MainCamera->Camera->Depth数值设置为0,将MapCamera的Depth设置为1,此时通过观察Game面板观察,通过改变MapCamera->ViewPort Reset->X、Y、W、H的值来调节MapCamera的显示大小和位置。
    一般小地图都是2D显示,所以将Projection修改为Orthographic,然后将Size大小调节到合适的值,但是当场景的形状不是规则时,就会多出一些除场景外的空白区域,这时选中MapCamera,将Clear Flags改为Depth only,这样空白区域就消失了。
    接着需要给玩家和怪物添加标识,让他们在地图上以一个小圆点或者三角形显示。新建一个Plane,命名为Mark,将其作为玩家的子物体,把它放置在人物的头顶,调节到合适的大小,然后可以从网上下载圆形或者三角形的透明图片,将其拖拽到Project面板中,接着新建一个Material,将图片拖拽到材质的Albedo前的方框中,并把Rendering Mode改为Cutout,将材质拖拽到Mark->Mesh Renderer->material->Element中,这样地图的人物标识就做完了。
    但是在MainCamera中也看的到Mark,所以需要将Mark设置为仅MapCamera可见,这时就需要用到Layer,选中Mark,点击Layer右侧,点击最下方Add Layer,添加一个MapMark,然后再次选中Mark,再次点击Layer右侧,勾选新添加的MapMark,接着选中MainCamera,将Camera->Culling Mask的MapMark取消勾选,而在MapCamera中则需要勾选MapMark,这样Mark就只在MapCamera中显示了,至此小地图的制作完成。
但是在实际的游戏制作当中,如果使用这种方法,存在两个摄像机对同一个场景进行拍摄,这样就会使得渲染工作加倍,所以优化的做法是在场景下方放置一个Plane,然后将从场景正上方拍摄到的情况做成一场图片,然后给到这个Plane,同样使用Layer,使得MapCamera只可以看见场景的图片和Mark,这就解决了存在两个摄像机需要重复渲染的问题。

VI. SkyBox天空盒

围绕整个场景的包装器,用于模拟天空的材质,天空盒材质种类:6 Sided,Procedural,Cubemap。

  • 使用天空盒
    设置摄像机 Clear Flags属性为Skybox。
    方式一:摄像机添加组件Skybox
    skybor
    custom Skybox
    None (Material)
    方法二∶光照窗口
    Window - Lighting -Environment Lighting – Skybox
    可作为反射源将天空色彩反射到场景中物体。

  • 6 Sided属性
    Tint Color色彩
    Exposure亮度
    Rotation旋转

  • Procedural属性
    Sun太阳模式
    – None没有.
    – Simple简单
    – Hight Quality高质量
    Atmoshpere Thickness大气层厚度
    Ground地面颜色
    如果为Environment Lighting的Sun属性设置一个平行光,场景中会根据平行光角度自动创建太阳,并且位置随平行光旋转而改变。如果不设置,系统将默认选择场景中最亮的平行光。

VII. InstantOC

Unity 基础学习(unity基本组成及常用功能介绍)_第1张图片

i. 渲染管线

Unity 基础学习(unity基本组成及常用功能介绍)_第2张图片

  • 顶点处理:接收模型顶点数据,坐标系转换。
  • 图元装配组装面:连接相邻的顶点,绘制为三角面。
  • 光栅化:计算三角面上的像素,并为后面着色阶段提供合理的插值
  • 参数。
    像素处理:对每个像素区域进行着色,写入到缓存中。
  • 缓存:一个存储像素数据的丙存块,最重要的缓存是帧缓存与深度缓存。
    帧缓存:存储每个像素的色彩,即渲染后的图像。帧缓存常常在显存中,显卡不断读取并输出到屏幕中。
    深度缓存z-buffer:存储像素的深度信息,即物体到摄像机的距离。光栅化时便计算各像素的深度值,如果新的深度值比现有值更近,则像素颜色被写到帧缓存,并替换深度缓存。

ii. Occlusion Culling即时遮挡剔除

即时遮挡剔除Instant Occlusion Culling
遮挡剔除:当物体被送进渲染流水线之前,将摄像机视角内看不到的物体进行剔除,从而减少了每帧渲染数据量,提高渲染性能。

  • 步骤
    1.创建层
    2.为游戏物体指定层(将参与遮挡剔除)与标签(将自动附加
    IOClod脚本)
    3.物体添加碰撞器Collider组件
    4.摄像机附加脚本IOCcam
  • 属性
    Layer mask :参与遮挡剔除的游戏对象层。
    IOC Tag :将为指定标签的游戏对象自动添加IOClod脚本对象。
    Samples :每帧摄像机发射的射线数目。数量多剔除效果好,但性能开销大。通常在150- 500之间。
    Rays FOV :射线视野,应大于摄像机视野Field of View。
    View Distance :视图距离,射线长度。将影响摄像机Clipping Planes -Far数值。
    Hide Delay :延迟隐藏,当物体被剔除时延迟的帧数,建议50- 100之间。
    PreCull Check :检查采集信息,建议勾选,可以提高剔除效率。
    Realtime Shadows :实时阴影,如果场景需要实时阴影,建议启用,确保剔除物体显示正常的阴影。

iii. LOD多细节层次

多细节层次Levels of Detail
LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。

  • 步骤
    1.创建层
    2.创建空物体并将模型添加到其中,命名为: Lod 0
    Lod1Lod2
    3.为父物体指定层与标签
    4.父物体或子物体添加碰撞器组件
    5.摄像机附加脚本IOCcam
  • 属性
    Lod 1 distance :摄像机到物体距离小于当前距离时,使
    用Lod_ 0模型。
    Lod 2 distance :摄像机到物体距离大于Lod1且小于当前
    距离时,使用Lod_ 1模型,大于当前值使用Lod 2模型。
    Lod Margin : LOD边缘,如果物体在LOD各阶段过渡时发
    生闪烁,尝试提高当前值。

VIII. 光照系统

Unity 基础学习(unity基本组成及常用功能介绍)_第3张图片

i. Global Illumination全局光照

简称GI ,即全局光照。能够计算直接光、间接光、环境光以及反射光的光照系统。通过G算法可以使渲染出来的光照效果更为真实丰富。

  • 属性
    Range范围:光从物体的中心发射的范围。仅适用于点光源和聚光灯。
    Spot Angle聚光角度:灯光的聚光角度。只适用于聚光灯。
    Color颜色:光线的颜色。
    Intensity强度:光线的明亮程度。
    Culling Mask选择遮蔽层:选择要照射的层L ayer.
    Shadow Type阴影类型: Hard 硬阴影、Soft 软阴影
    Strength硬度:阴影的黑暗程度。
    Resolution分辨率:设置阴影的细节程度。
    Bias偏移: 物体与阴影的偏移。
    通过Mesh Renderer组件启用禁用阴影
    Cast / Receive Shadows当前物体是否投射/接收阴影。
    Off不投射阴影, On投射阴影,Two Sided双面阴影,Shadows Only隐藏物体只投射阴影
    阴影剔除:设置显示阴影的距离
    Edit- > Project Settings-> Quality- > Shadows Disdance
  • 直接光照
    从光源直接发出的光,通过Light组件实现。
    Type类型:灯光对象的当前类型
    Directional Light平行光:平行发射光线,可以照射场景里所有物体,用于模拟太阳。
    Point Light点光源:在灯光位置上向四周发射光线,可以照射其范围内的所有对象,用于模拟灯泡。
    Spot Light聚光灯:在灯光位置上向圆锥区域内发射光线,只有在这个区域内的物体才会受到光线照射,用于模拟探照灯。
    Area Light区域光:由一个面向一个方向发射光线,只照射该区域内物体,仅烘焙时有效,用在光线较为集中的区域。
  • 环境光照
    作用于场景内所有物体的光照,通过Environment Lighting中Ambient控制。
    Ambient Source环境光源
    Skybox通过天空盒颜色设置环境光照
    Gradient梯度颜色
    Sky天空颜色、Equator 地平线颜色、Ground 地面颜色
    Ambient Color纯色
    Ambient Intensity环境光强度
    Ambient GI环境光GI模式
    Realtime实时更新,环境光源会改变选择此项。
    Backed烘焙,环境光源不会改变选择此项。
  • 反射光照
    根据天空盒或立方体贴图计算的作用于所有物体的反射效果,通过Environment Lighting中Reflection 控制。
    Reflection Source反射源
    Skybox天空盒
    Resolution分辨率Compression 是否压缩
    Custom自定义
    Cubemap立方体贴图
    Reflection Intensity 反射强度
    Reflection Bounces使用Reflection Probe后允许不同游
    戏对象间来回反弹的次数。
  • 间接光照
    物体表面在接受光照后反射出来的光。
    通过Light组件中Bounce Intensity反弹强度控制。
    可以通过Scene面板Irradiance模式查看间接光照。
    注意:
    只有标记 Lightmaping Static的物体才能产生间接反弹光照。

ii. 实时GI

Realtime GI
所谓"实时"是指在运行期间任意修改光源,而所有的变化可以立即更新。正是由于Unity 5引入了行业领先的实时全局光照技术,Enlighten系统,才可以在运行时产生间接光照,使场景更为真实丰富。

  • 操作步骤:
    1.游戏对象设置为Lightmaping Static
    2.启用Lighting 面板的Precomputed Realtime GI
    3.点击Build按钮(如果勾选Auto编辑器会自动检测场景的改动修复光照效果)
  • Precomputed Realtime GI
    Realtime Resolution :实时计算分辨率。
    CPU Usage : CPU利用率,值越大实时渲染效率越高。

iii. 烘焙GI

烘焙Lightmap
当场景包含大量物体时,实时光照和阴影对游戏性能有很大影响。使用烘焙技术,可以将光线效果预渲染成贴图再作用到物体上模拟光影,从而提高性能。适用于在性能较
低的设备上运行的程序。

  • Baked GI
    Baked Resolution :烘焙光照贴图分辨率,建议比实时GI分辨率高10倍。
    Baked Padding :光照贴图中各形状间距,取值2到200。
    Compressed :是否压缩光照贴图,压缩则提高性能,缩小容量,但画质会降低。

iv. General GI

常规GI设置,同时适用于实时GI与烘焙GI。

  • Directional Mode定向模式:
    Non - Directional无定向模式,使用1种光照贴图存储光照信息。
    Directional定向模式,使用2种光照贴图存储光照信息,相比之下效果更好,但空间占用更大。
    Direction Specular定向反射模式,使用4种光照贴图存储光照信息,效果最好,但占用空间最大。
  • 除无定向模式外必须运行在GL ES2.0与SM2.0以上的设备。GLES指OpenGL ES针对移动端,从iPhone5s开始支持;SM指Shader Model针对PC端,目前大部分显卡支持。
    Indirect Intensity最终间接光照、反射光照的强度。1为默认强度,小于1则减低强度,大于1则增大强度。
    Bounce Boost增强间接光照。
    Default Parameters高级GI参数。
    Default默认
    Default - HighResolution高分辨率
    Default - LowResolution低分辨率
    Default - VeryL owResolution非常低的分辨率

v. 光源侦测 Light Probes

由于LightMapping只能作用于static物体,所以导致运动的物体与场景中的光线无法融合在一起,显得非常不真实。而Light Probes组件可以通过Probe收集光影信息,然后对运动物体邻近的几个Probe进行插值运算,最后将光照作用到物体上。

  • 步骤
    1.创建游戏对象Light Probe Group.,
    2.添加侦测小球Add Probe.
    3.点击Build按钮。( 如果勾选Auto编辑器会自动检测
    场景的改动修复光照效果)
    4.勾选需要侦测物体的MeshRenderer组件的Use Light
    Probes属性。

IX. 声音

  • Unity支持的音频文件格式:mp3,ogg,wav,aif,mod,it,s3m,xm。
  • 声音分为2D、3D两类
    3D声音:有空间感,近大远小。
    2D声音:适合背景音乐。
  • 在场景中产生声音, 主要依靠两个重要组件:
    Audio Listener音频监听器:接收场景中音频源AudioSource发出的声音,通过计算机的扬声器播放声音。
    Audio Source音频源
  • Audio Source音频源:
    Audio Clip音频剪辑:需要播放的音频资源。
    Mute静音:如果启用,播放音频没有声音。
    Play On Awake唤醒播放:勾选后场景启动时自动播放。
    Loop循环:循环播放音频。
    Volume音量:音量大小
    Pitch音调:通过改变音调值调节音频播放速度。1是正常播放。
    Stereo Pan : 2D声音设置左右声道。
    Spatial Blend : 2D与3D声音切换。
  • 3D Sound Settings
    3D声音设置
    Volume Rolloff音量衰减方式
    Min Distance开始衰减距离
    Max Distance结束衰减距离

X. Prefab 预制件

  • 一种资源类型,可以多次在场景进行实例。
  • 优点:对预制件的修改,可以同步到所有实例,从而提高开发效率。如果单独修改实例的属性值,则该值不再随预制件变化。
  • Select键:通过预制件实例选择对应预制件。
  • Revert键:放弃实例属性值,还原预制件属性值。
  • Apply键:将某实例的修改应用到所有实例。

XI. Animation 动画

i. Animation View 动画视图

  1. 通过动画视图可以直接创建和修改动画片段(AnimationClips)。
  2. 显示动画视图: Window- Animation。

ii. 创建动画片段

  1. 为物体添加Animation组件。
  2. 在动画视图中创建片段。

iii. 时间线

  • 可以单击时间线上的任何位置预览或修改动画片段。
  • 数字显示为秒数和帧数。
    例如:1:30表示1秒和30帧
  • 使用按钮跳到上一个或下一个关键帧,也可以键入特定数直接跳到该帧。

iv. 录制动画片段

  • 录制步骤:
  1. 点击录制按钮,开始录制动画。
  2. 添加关键帧Add Property,选择组件类型。
  3. 选择关键帧,调整时间点。
  4. 在Scene或Inspector面板设置属性。
  5. 点击录制按钮,结束录制动画。任何组件以及材质的属性都可进行动画处理,即使是自定义脚本组件的公共变量。

v. 常用API函数

  1. bool isPlay= animation.isPlaying;
  2. bool isPlay= animation.IsPlaying(动画名");
  3. animation.Play(“动画名”);
  4. animation.PlayQueued(动画名);
  5. animation.CrossFade (“动画名”);
  6. animation[“动画名”].speed = 5;
  7. animation[“动画名”].wrapMode= WrapMode PingPong;
  8. animation[“动画名”.length;
  9. animation[“动画名”].time;

二、脚本

修改新建脚本初始化模板:
Unity\Editor\Data\Resources\ScriptTemplates,用Visual Studio 打开进行修改后保存。
在Unity中通过菜单设置修改默认的脚本编辑器:
Edit-Preferences-External Tools-External Script Editor

I. 脚本生命周期

Unity脚本从唤醒到销毁的过程。
消息:当满足某种条件Unity引擎自动调用的函数。
必然事件:http://docs.unity3d.com/Manual/ExecutionOrder.html

i. 初始阶段

Awake唤醒:当物体载入时立即调用1次;常用于在游戏开始前进行初始化,可以判断当满足某种条件执行此脚本this, enable=true。
OnEnable当可用:每当脚本对象启用时调用。
Start开始:物体载入且脚本对象启用时被调用1次。常用于数据或游戏逻辑初始化,执行时机晚于Awake.

ii. 物理阶段

FixedUpdate固定更新:脚本启用后,固定时间被调用,适用于对游戏对象做物理操作,例如移动等。
设置更新频率: “Edit” --> “Project Setting” - “Time” -->"Fixed Timestep"值,默认为0.02s。
OnCollisionXXX碰撞:当满足碰撞条件时调用。
OnTriggerXXX触发:当满足触发条件时调用。

iii. 游戏逻辑

Update更新:脚本启用后,每次渲染场景时调用,频率与设备性能及渲
染量有关。
LateUpdate延迟更新:在Update函数被调用后执行,适用于跟随逻辑。

iv. 输入事件

OnMouseEnter鼠标移入:鼠标移入到当前Collider时调用。
OnMouseOver鼠标经过:鼠标经过当前Collider时调用。
OnMouseExit鼠标离开:鼠标离开当前Collider时调用。
OnMouseDown鼠标按下:鼠标按下当前Collider时调用。
OnMouseUp鼠标抬起:鼠标在当前Collider上抬起时调用。

v. 场景渲染

OnBecameVisible 当可见:当Mesh Renderer在任何相机上可见时调用。
OnBecameInvisible 当不可见:当Mesh Renderer在任何相机上都不可见时调用。

vi. 结束阶段

OnDisable当不可用:对象变为不可用或附属游戏对象非激活状态时此函数被调用。
OnDestroy当销毁:当脚本销毁或附属的游戏对象被销毁时被调用。
OnApplicationQuit当程序结束:应用程序退出时被调用。

II. 调试

i. 使用Unity编辑器

将程序投入到实际运行中,通过开发工具进行测试,修正逻辑错误的过程。

  1. 控制台调试
    Debug.Log(变量);
    print(变量);
  2. 定义共有变量,程序运行后在检测面板查看数据

ii. 使用VS

准备工作:
(1)安装vs2019工具
(2)在Unity项目面板中导入: Visual Studio 2019 Tools
调试步骤:
(1)在可能出错的行添加断点
(2)启动调试
(3)在Unity中Play场景

你可能感兴趣的:(unity,c#,unity,游戏开发)