首页 > 其他分享 >Unity3D入门基础知识

Unity3D入门基础知识

时间:2023-01-18 19:12:20浏览次数:46  
标签:脚本 Unity3D 场景 窗口 入门 物体 基础知识 Unity 组件

一、基础概念

1、物体与空物体

物体(Game Object),其实是一个节点或容器。一般所谓的“物体”,即有形状的东西,对应的Mesh,网格信息代表了物体(形状)。

空物体(Empty Object),即空对象、空节点。空物体不可见(没有网格),但空物体也有坐标,可以移动。空物体常用于节点的组织和管理,或用于标记一个位置。

2、父子关系

父子关系,指两个物体之间的关系。在Hierarchy窗口中,拖动物体B,到物体A下,子物体会随着父物体一并移动。删除父物体时,子物体也会一并删除。子物体的坐标是相对于父物体的,即相对坐标。

3、世界坐标系与本地坐标系

Global,即世界坐标系。以世界中心为轴,6个方向代表了上、下、东、西、南、北。

Local,即本地坐标系。以物体自身为轴,6个方向代表了上、下、前、后、左、右。

Y轴称为Up,Z轴称为Forward,X轴称为Right。一般地,在建模软件里建模时,模型的正面与Z轴的方向一致。移动一个物体时,一般就是让这个物体向前运动,Forward。

4、轴心与几何中心

Pivot,即轴心。指一个物体的操作基准点。

Center,即几何中心。对于基本体来说,轴心点默认位于几何中心,但并不是所有物体的轴心都在几何中心点。

在Unity中,默认情况下显示的是Pivot操作模式,即轴心模式。另外一种模式是几何中心点模式。可选择切换物体在移动、旋转和缩放时,是以哪个点作为操作基准点。一般使用的是Pivot模式。

5、组件

Component,即组件。代表一个具体功能,例如,Light,光源。Directional Light,平行光源。Mesh Filter,网格过滤器,用来加载网格数据。Mesh Renderer,负责渲染。

二、Unity编辑器

Unity Editor是一个具有“所见即有得”功能的编辑器,可以在其中调整场景的地形、灯光、动画、模型、材质、音频等参数,也包括调整用户在脚本中自定义的参数。这些参数调整的结果,都可以通过编辑器中的动态预览功能进行实时查看。开发者就像造物主,在这里尽情地创造自己的世界。

对于用户的个性化需求,Unity Editor提供编写编辑器脚本,或使用第三方插件的方式来创建属于自己的编辑界面和功能。

Unity Editor

1、Scene - 场景编辑窗口

Scene - 场景编辑窗口

Scene窗口是Unity编辑器中最主要的一个窗口,可以通过鼠标拖拽的方式,在窗口里摆放各种Game Object,可视化地编辑场景。它所显示的场景视图,就是开发者所看到的视野。如果以拍摄电影来比喻,Scene view就是在摄影棚中,电影导演的视野。

2、Game - 游戏运行窗口

Game - 游戏运行窗口

Game窗口所呈现的是Scene中的摄像机视野里的景象,即游戏真实运行起来后,玩家所看到的景象。开发者不能在此窗口编辑,只能观看。比作电影的话,就是摄像机放映出的影像。

3、Hierarchy - 场景物体列表窗口

Hierarchy - 场景物体列表窗口

Hierarchy窗口使用树形结构列出当前场景中的所有Game Object,以及Game Object之间的层级关系。在Scene窗口中有些细小的对象比较难选择,就可以在Hierarchy窗口中进行选择。

4、Inspector - 属性编辑列表窗口

Inspector - 属性编辑列表窗口

Inspector窗口,即属性面板。当开发者在Scene或Hierarchy窗口中选中一个Game Object,则Inspector里就会显示该Game Object对应的各种属性。可通过底部的Add Component按钮,为选中的Game Object增加需要显示的属性。

5、Project - 项目资源列表窗口

Project - 项目资源列表窗口

Project窗口罗列出所有工程中创建或导入的各种资源,包括场景、脚本、材质、音效、贴图等。如果直接将Project中的资源拖入Scene中,则表示将该资源添加进这个当前的游戏场景,同时,也会同步在Hierarchy里显示。

6、Console - 打印输出窗口

Console窗口用于显示代码编译过程中,或者是游戏运行过程中的报错、警告和测试信息,主要用于查错和调试。如果Unity界面中没有Console窗口,可在Window->General->Console中调出此窗口。点击Clear,清除打印信息。

三、常用组件

1、摄像机

Camera,即摄像机。负责拍摄游戏画面。摄像机的Z轴指向,即为拍摄方向。拍到的画面,呈现在Game窗口中,也就是玩家最终看见的画面。

调整摄像机的角度,可用两种方式。第一种,手动。手工移动、旋转摄像机,对准目标。第二种,GameObject->Align With View,与3D视图对齐。先在3D视图里摆好角度,此为观察者视角,然后选中Main Camera,执行Align With View。此时,摄像机视角与观察者视角完全相同。

2、Transform组件

Transform,即变换组件。物体的基本参数有Position,位置(相对坐标)、Rotation,旋转(欧拉角)、Scale缩放。Transform就是用来描述一个物体在空间中的位置坐标、旋转量和缩放量。所有物体都有Transform组件,而且不能被删除。

3、AudioSource组件

AudioSource组件,用于播放音乐/音效。创建一个物体,Add Component,Audio | Audio Source,将音乐文件(*.mp3/wav/aiff)拖到AudioSource.AudioClip属性。

四、脚本的运行

1、HelloWorld脚本

(1)添加一个脚本文件。右键Create->C# Script后生成的脚本模板,文件名必须规范,文件名即为类名,如Simple。

(2)在VS中编辑代码。双击在VS(Visual Studio)中打开脚本,检查类名与文件名是否一致。C#文件名必须和类名一致,否则无法挂载。如果要修改类名,可在VS中右键重命名。添加一行打印输出,并保存文件。

void Start()
{
    Debug.Log("Hello World!我的第一个脚本!");  /* Debug是Unity API中的一个工具类 */
}

(3)编译代码。编译的过程是自动的,保存脚本,回到Unity界面时会自动重新编译。

(4)挂载脚本。脚本必须挂载到物体上,才会被调用。有两种方法,点击Add Component,选Script->Simple。或者,直接将脚本拖到Inspector窗口的最下方。

(5)运行游戏。点击Play按钮,运行游戏。在Console窗口中,观察输出。再次点击Play按钮,游戏结束运行。

Console窗口查看打印输出

2、消息函数

Unity是一个完全面向对象的框架,对象由框架创建,如下图所示。所有的脚本,都统一继承于MonoBehavior,模板中已自动生成Start和Update两个消息函数。

新建C#脚本后生成的模板

常见的消息函数主要有以下几个:

(1)Awake,初始化,仅执行一次

(2)Start,初始化,仅执行一次

(3)Update,帧更新,每帧调用一次

(4)OnEnable,每当组件启用时调用

(5)OnDisable,每当组件禁用时调用

Awake先于Start调用,两个都是初始化函数,都仅执行一次。它们的区别在于组件的状态,如果脚本所挂载的组件被禁用的话,那么,Start方法不会被调用,而Awake方法总是被调用。

已禁用的组件,其消息函数中的Start方法和Update方法不会被调用。

3、脚本的参数

脚本的参数,用于控制脚本组件的功能。

脚本参数的用法:

(1)参数的名称,即变量名,在脚本中,必须定义为public,才能在检测器中显示。

(2)参数的默认值,即变量的默认值,可以在Reset菜单中重置。

(3)参数的工具提示,可以用[Tooltip("xxxxx")]指定。

五、各类文件

1、资源文件

Assets目录下的文件,即为资源。使用Meta来描述文件,每个资源文件/文件夹,都对应一个*.meta描述文件。

常见的类型有,模型文件Model(*.fbx)、图片文件Texture(*.jpg/png/tif/psd等)、音频文件AudioClip(*.mp3/wav/aiff)、脚本文件Script(*.cs)、材质文件Material(*.mat)、场景文件(*.unity)等等。

2、场景文件

场景文件*.unity,记录了场景中的节点数据。包含场景全局设置、节点、节点下挂载的组件、各组件的参数值等。一个场景往往代表一个关卡,可以创建多个不同的场景。

3、资源包

Unity中的资源包(Unity Package),即对Assets下的资源进行打包。选择一个资源文件,或一个目录。右键,Export Package,生成*.unitypackage资源包。

 

 

未完待续......

标签:脚本,Unity3D,场景,窗口,入门,物体,基础知识,Unity,组件
From: https://www.cnblogs.com/sexintercourse/p/17060419.html

相关文章

  • C++入门篇之重载运算符和重载函数
    C++允许在同一作用域中的某个函数 和运算符 指定多个定义,分别称为函数重载 和运算符重载。重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声......
  • C++入门篇之C++ 指针
    学习C++的指针既简单又有趣。通过指针,可以简化一些C++编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的C++程序员,学习指针是......
  • c++入门篇之C++ 多态
    多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。C++多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数......
  • c++入门篇之C++ 预处理器
    预处理器是一些指令,指示编译器在实际编译之前所需完成的预处理。所有的预处理器指令都是以井号(#)开头,只有空格字符可以出现在预处理指令之前。预处理指令不是C++语句,所以它......
  • c++入门篇之C++ 引用
    C++引用引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。​​C++引用vs指针​​引......
  • c++入门篇之C++ 信号处理
    C++信号处理信号是由操作系统传给进程的中断,会提早终止一个程序。在UNIX、LINUX、MacOSX或Windows系统上,可以通过按Ctrl+C产生中断。有些信号不能被程序捕获,但是下......
  • 自学开发技术,从入门到入行
    今​天我们不谈技术,也不聊业务,说说学习技术的心得。说到学习这种事情,无论是学什么,都需要持之以恒,拥有坚持的决心才有可能会学到一些东西。如果只是三天打鱼,两天晒网的态度,不......
  • Envoy入门
    核心功能高性能设计:采用C++编写,拥有良好的四层、七层代理性能,在8核的机器上,HTTP代理可以达到10w的QPS,gRPC可以达到15wQPS,完全满足了ServiceMesh中Sidecar......
  • istio入门
    Istio在逻辑上分为数据平面和控制平面。数据平面,由一组高性能的智能代理(基于Envoy改进的istio-proxy)组成,它们控制和协调了被代理服务的所有网络通信,同时也负责收集和......
  • Elasticsearch 技术分析(一): 基础入门
    简介Elasticsearch是一个高度可扩展的、开源的、基于Lucene的全文搜索和分析引擎。它允许您快速,近实时地存储,搜索和分析大量数据,并支持多租户。Elasticsearch也使用Ja......