Unity引擎

article/2025/11/4 23:15:12

知识创造技术 技术改变世界

------ Oracle中文开发者社区 ------

二维码 二维码 二维码 二维码 二维码 二维码

如果你想要学习编程,关注本博客,持续获得技术支持,持续获得技术咨询


java开发·企业官方账号 Oracle中国官方账号 Java中国管理部 全网粉丝30万+ 华为云享专家 阿里专家博主 CSDN内容合伙人 CSDN原力计划作者 51CTO专家博主 CSDN博客V账号 毕业于四川大学新闻与文学学院 精通java,Python,HTML,掌握了PHP,C语言,C++,C#,JavaScript,Visual Basic等二十余种编程语言的技巧,会分享一些编程心得、面试技巧和编程方法。


其他链接

主页 官网 社区 论坛

文章目录

  • 1. Unity简介
  • 2. 游戏组成
  • 3. Unity面板介绍
    • 3.1 Hierarchy(层级面板)
    • 3.2 Scene(场景面板)
    • 3.3 Game(游戏面板)
    • 3.4 Inspector(监视器面板)
    • 3.5 Project(工程面板)
    • 3.6 Console(控制台面板)
  • 5. 一些3D模型中会用到的基础理论
    • 5.1 物体中心的概念
    • 5.2 坐标系(笛卡尔坐标系)的概念
    • 5.3 向量和标量的概念
    • 5.4 旋转的概念
    • 5.5 网格的概念(模型形状)
    • 5.6 材质的概念


1. Unity简介

  • 简单介绍:
    • Unity提供Manual(引擎说明书)和Scripting API(代码,类和方法可以在这里查)两个文档,开发人员可以阅读这两个文档来了解Unity开发

2. 游戏组成

  • 一个游戏由多个场景构成,场景又分为2D界面和3D场景
  • 在Unity中,界面和场景都称为场景,场景和场景之间可以相互切换
  • 场景中包含很多个游戏对象,游戏对象有:
    • 2D图片与文字
    • 3D模型(包含动画)与特效
  • 游戏对象具有的特性:
    • 所有游戏对象都是一样的(游戏对象就是一个外壳)
    • 游戏对象上挂载的组件不同,挂载的组件属性不同,导致游戏对象的功能不同(功能由组件完成)
  • 游戏对象包含各种组件,下面罗列几种组件:
    • 灯光组件(发光)
    • 声音组件(背景音乐)
    • 视频组件
    • 图片组件(显示图片)
    • 模型显示组件(渲染组件)
    • 特效组件
    • 导航组件
    • 物理组件
    • UI组件
    • 脚本组件(自己写的功能)
    • 组件就是一个对象,对象中包含各种属性
    • 组件名——类名
    • 一个类包含成员字段、成员属性、成员方法
  • 一个游戏总共分成四个部分,总结如下:
    • 一个游戏由多个场景组成,场景有2D场景和3D场景之分
    • 一个场景由对个游戏对象组成
    • 一个游戏对象由多个组件组成
    • 一个组件由多个属性组成

3. Unity面板介绍

  • Layout:窗口布局样式
  • 带Unity图标的表示场景

3.1 Hierarchy(层级面板)

  • 功能:
    • 显示当前场景中的所有游戏对象的名字
    • 描述游戏对象与游戏对象之间的层级关系(父子级关系)
    • 可以拖动游戏对象以形成层级

3.2 Scene(场景面板)

  • 功能:
    • 显示当前场景中的所有游戏对象的模型/图标
    • 提供场景和游戏对象的基本操作
    • 在面板右上角存在坐标系,可以调整场景视角
  • 场景操作:
    • Q键:场景移动
    • Alt+鼠标左键:旋转场景视角,围绕场景中心点旋转视角
    • 鼠标右键:旋转场景视角,围绕当前观察者(鼠标位置)旋转视角
    • 鼠标滚轮:拉近拉远场景
    • F键:聚焦对象
    • 鼠标右键+WASD:场景漫游
    • Shift+Ctrl+F:游戏界面同步场景界面(用在摄像机上)
  • 在场景中选择好合适的视角
  • 选中摄像机对象
  • 同步视角,按下快捷键或者GameObject菜单栏下的Align With View
  • 游戏对象操作:
    • W键:对象移动
    • E键:对象旋转
    • R键:对象缩放
  • 摄像机具有两个模式:透视模式(Perspective)和正交模式(Orthographic,一般2D会用到)
  • 搭建场景的时候,为了模型放置精准,可以按下面的顺序进行操作模型:
    • 模型先通过QWER设置好一个大概的位置旋转缩放
    • 通过模型在Inspector上的Transform组件里的position、rotation、scale去做微调,最好保持数值是一个整数或保留一位到两位小数
    • 放置模型,还可以采用位置贴边方式:
      • 调节物体位置时,可以按住V键,让当前模型的某个顶点与另一个模型的某个顶点重合,实现贴边
      • 原理:
        • 一个物体存在多个顶点,每三个顶点可构成一个三角形,多个三角形形成一个模型
    • V键可以让坐标系移动到模型顶点位置
    • 两个模型之间顶点和顶点重合,可以产生贴边效果
    • 当要创建一个复杂物体时,可以按照下面的步骤来创建:
      • 先创建一个空对象,作为父物体,创建好后,先Reset重置空对象Transform组件中的属性
      • 再去创建物体需要的源部件,作为子物体

3.3 Game(游戏面板)

  • 功能:
    • 显示玩家所看到的画面
    • 开发中需要重点关注的视角
    • 调试和测试都需要看这个面板上的信息
    • 通过调整摄像机来调整完整能看到的视角
    • 手机游戏/电脑游戏中,玩家所能看到的画面会显示在屏幕(2D)上
    • VR(眼镜曲面屏)/AR中,主要是通过光学原理,让玩家产生视角错觉,在屏幕上所能看到的2D画面转变成3D画面
    • 在这个面板上,存在一个尺寸调整条,可以放大缩小所看到的画面
    • 游戏运行的状态信息(运行时占CPU大小,占多少内存,当前帧速率是多少等)可以在面板的右上角Stats中查看,用于后期的游戏调试

3.4 Inspector(监视器面板)

  • 功能:
    • 主要用来监视游戏对象
    • 重点监视游戏对象上挂载的组件,可以在这个面板添加新组件
    • 监视游戏对象的基本信息(对象名字、是否静态、有哪些标签、属于哪一层级、激活状态)
    • 监视文件信息(材质文件等)
    • 监视工程设置

3.5 Project(工程面板)

  • 功能:
    • 显示当前工程的所有资源文件
    • 根目录是Assets
    • 一个工程下有5个基础文件夹:
      • Assets:放置资源文件
      • Library:放置库文件(自动生成)
      • ProjectSettings:放置工程设置文件
      • Temp:放置临时文件
      • Package(UnityPackageManager):Unity包管理器

3.6 Console(控制台面板)

  • 功能:
    • 显示控制台信息
    • 显示日志信息
    • 显示警告信息
    • 显示报错信息
  1. 地形系统(Terrain)
  • Unity提供的一个地形组件
  • 一个游戏场景空间,采用地形+模型的方式搭建
  • 创建地形系统:
    • GameObject——>3DObject——>Terrain
  • 创建完成后,在Hierarchy面板中出现相应游戏对象,Project面板中出现地形系统文件(存储地形信息)
  • 初始坐标中心位于左下角(x轴表左右,y轴表上下,z轴表前后)
  • 编辑地形
  • 抬高/降低地形平面(可选择不同笔刷形成不同地形样式)
    • Brush Size:笔刷大小
    • Opacity:笔刷硬度,值大小表示抬高/降低地形速度
  • 平滑地形
  • 凹陷地形(可制作平台)
  • 在Unity2020版本中,选择设置高度后,Space处要选择Local才可以在一定高度地形上设置平台
  • 整体设置中可以调整地形大小、高度等
  • 高度限制抬高地形最高点
  • 按住shift键,做相反操作
  • 搭建地形时,要注意,第一个物体的坐标尤为关键,关系到地形上放置模型的坐标值计算是否方便
  • 能放在原点,尽量放在原点位置
  • 不能放在原点,尽量保持坐标是一个整数,或保留一位小数

5. 一些3D模型中会用到的基础理论

5.1 物体中心的概念

  • Pivot(模型设计师设计的)
  • 单个物体:显示物体出产中心
  • 多个物体:显示当前这个物体的中心
  • Center(对象边界框的中心点)
  • Unity物理计算中心
  • 通过快捷键Z切换两个中心点
  • 物体中心点的选择不同会影响到旋转效果不同

5.2 坐标系(笛卡尔坐标系)的概念

  • 2D笛卡尔(XY轴可以定一个平面上物体位置)
  • 3D笛卡尔
    • 左手坐标系——计算机、Unity中使用
      • 掌心向外, 大拇指与食指成90度
      • X轴向右,Y轴向上,Z轴向前
    • 右手坐标系——一般在数学中使用
      • 掌心向内, 大拇指与食指成90度
      • Z轴与左手坐标系相反,指向“自己”
  • Unity坐标系
    • 世界坐标方位
    • 世界的东南西北
    • 永远不会改变
    • 本地坐标方位
    • 物体的前后左右
    • 会随时发生改变,例如,旋转物体时,物体的本地坐标也会跟着旋转
  • 用快捷键X切换两个坐标,即切换方位(世界方位/自身方位)

5.3 向量和标量的概念

  • 标量:有大小无方向
  • 向量:有大小有方向(Unity中常用)
  • 计算两点之间形成的向量:终点坐标-起点坐标
  • 向量加法:首尾相连,一个向量起点指向另一个向量终点
  • 向量减法:起点相连,减数终点指向被减数终点(被减数-减数=差)
  • 向量点积:结果是一个标量
    • 根据点乘结果来判断两个游戏对象之间的方位关系
    • 通常用于判断敌人在前还是在后
  • 向量叉乘 :(利用UnityAPI中的Cross函数即可得到计算结果)
    • 结果是一个向量(法向量,垂直于两个向量平面),左手坐标系计算
    • 法向量指向上方,表示b向量指向a向量右边;指向下方,则相反
    • 通常用于判断敌人在左还是在右

5.4 旋转的概念

  • 欧拉角(EularAngle):——结构体
  • 物体绕XYZ轴(世界的)旋转的角度
  • 优点:好理解,好操作
  • 缺点:容易出现多个欧拉角的值表示一个旋转
  • 四元数:(用得较多,较精准)——类
  • 由XYZW四个值组成,由一堆算法算出来
  • 优点:避免万向锁(同一个旋转角度,欧拉角描述会有不同的值出现)问题
  • 缺点:不好理解,不好操作

5.5 网格的概念(模型形状)

  • 用一堆三角形组成
  • 模型分为粗模(低模)和细模(高模)两种
  • 模型纹理:网格贴图(将2D贴图上的像素点对应到3D模型中粘贴)
  • 会用到组件有Mesh Filter(网格选择器)和Mesh Renderer(网格渲染器)

5.6 材质的概念

  • 用于渲染网格的文件
  • 用Shader(着色器)来编程实现(渲染方案)
  • 控制材质球如何渲染的脚本
  • 使用CG语言
  • 可以编辑特效等
  • 需要物理中的光学知识和线性代数中的矩阵知识
  • 帧速率(FPS)的概念
    • 每秒刷新多少次数
    • 作用:
      • FPS越高,播放越流畅,性能消耗越大
      • FPS越低,播放越不流畅,性能消耗越小
    • 人眼分别的帧数是每秒24帧
    • 通过Game面板中的Stats来了解游戏的帧速率

------- THE END -------

http://chatgpt.dhexx.cn/article/sYamEGOn.shtml

相关文章

unity教程之Unity引擎

中国传媒大学老师所主讲的,所用到的unity版本为2018版unity教程之用到的资源也都提供了下载链接,视频的时长大部分控制在20-40分钟之内,此课程讲解了地形,脚本,动画,图形渲染,物理系统&#xff…

Havok物理引擎与Unity3D的结合

背景  在重度手游的研发过程当中,游戏中的车辆模拟,场景互动,特效展示等功能很多时候需要物理引擎的介入,以提供丰富的交互体验。目前3D手游的开发主要工具是使用Unity3D引擎,于是,如何在Unity3D的开发过…

unity物理引擎介绍

早期的游戏并没有强调物理引擎的应用,当时无论是哪一种游戏,都是用极为简单的计算方式做出相应的运算就算完成物理表现,如超级玛丽和音速小子等游戏。 较为常见的物理处理是在跳跃之后再次落到地上,并没有特别注重物理表现效果。…

Unity3d物理引擎

一、定义 物理引擎就是在游戏中模拟真实的物理效果,比如,场景中有一个立方体和一个球体,球体在空中,立方体在地面倾斜放置,在空中的球体开始自由下落,然后与地面上的立方体对象发生碰撞,而物理…

Unity和UE4两大游戏引擎,你该如何选择?

目录 游戏引擎 2 ——> 难易区别 编程语言 3 ——> 游戏产品 UE4制作的游戏产品 Unity制作的游戏产品 产品类型 5 ——> 资源商店 6 ——> 人才需求 平均薪资 总结 游戏引擎 Unity和UE4都是游戏引擎,所谓游戏引擎就是集成了复杂功能的游戏…

赞美之外,Unity引擎3D引擎存在什么弊病?

由于手游业界各大公司对该引擎的认可和追逐,自2013年开始,Unity大会成为了行业内最火爆的大会之一。在信息丰富的网络上,我们可以看到满屏的Unity教程和优点的介绍,但这款引擎是否存在着弊病呢?带着这个问题,我们采访…

Unity3d是目前主流的游戏开发引擎

Unity3d是目前主流的游戏开发引擎,它提供了一个整合的编辑器、跨平台发布、地形编辑、着色器,脚本,网络,物理,版本控制等特性。Unity3d可以开发桌面版、web版、手机版的游戏,是一个非常理想的三维游戏开发平…

Unity3D 游戏引擎之构建简单的游戏世界(三)

Unity3D 游戏引擎之构建简单的游戏世界 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/473 创建游戏地面 创建一个新的游戏工程名称命名为FirstGame,场景…

Unity3d 引擎原理详细介绍

体系结构 为了更好地理解游戏的软件架构和对象模型,它获得更好的外观仅有一名Unity3D的游戏引擎和编辑器是非常有用的,它的主要原则。 Unity3D 引擎 Unity3D的是一个屡获殊荣的工具,用于创建交互式3D应用程序在多个平台.Unity3D由游戏引擎和…

Unity3D游戏引擎最详尽基础教程

关注公众号 风色年代(itfantasycc) 200G Unity资料合集送上~ 转自:http://blog.sina.com.cn/s/blog_7c336a8301013son.html 我一直向所有想做游戏的朋友推荐Unity3D,为什么呢?首先是因为专业,Unity3D非常强…

30分钟了解所有引擎组件,132个Unity 游戏引擎组件速通!【收藏 == 学会】

前言 🎬【全网首发】 | 30分钟了解所有组件,132个Unity 游戏引擎组件速通!一、Mesh 网格1.Mesh Filter2.Mesh Renderer3.Skinned Mesh Renderer4.Text Mesh5.TextMeshPro-Text 二、Effects 特效组件1.Particle System2.Visual Effect3.Trail …

Unity 3D 物理引擎简介 || Unity 3D 物理材质|| Unity 3D 力(AddForce)

Unity 3D 物理引擎简介 早期的游戏并没有强调物理引擎的应用,当时无论是哪一种游戏,都是用极为简单的计算方式做出相应的运算就算完成物理表现,如超级玛丽和音速小子等游戏。 较为常见的物理处理是在跳跃之后再次落到地上,并没有…

Unity游戏引擎介绍及相关学习资源

Unity(游戏引擎)一般指Unity3D 官网: https://unity.com/ 手册:https://docs.unity3d.com/Manual/ Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的…

垃圾收集器及算法

一、垃圾收集算法 1.分代收集理论 当前虚拟机的垃圾收集都采用分代收集算法,只是根据对象存货周期的不同将内存分为几块。一般java堆分为新生代和老年代,可以根据各个年代的特点选择合适的垃圾收集算法。比如在新生代中,每次收集都会有大量的…

垃圾收集器-CMS

CMS垃圾收集器 文章目录 CMS垃圾收集器前言一、CMS是什么?二、CMS收集的步骤1.初始标记2.并发标记3.重新标记4.并发收集 三、核心参数四、总结 前言 相信大家都或多或少的了解过hotspot虚拟机的垃圾收集器,无论是初代的serialGc(单线程的垃圾收集器)&am…

Java经典垃圾收集器

经典垃圾收集器 1.Serial收集器2.ParNew收集器3.Parallel Scavenge收集器4.Serial Old收集器5.Parallel Old收集器6.CMS收集器7.Garbage First收集器 1.Serial收集器 Serial收集器是最基础,历史最久远的收集器,是一款新生代收集器,新生代收集…

GC 垃圾收集器

GC 垃圾回收算法 和 垃圾收集器之间的关系是什么呢 ? GC算法 (复制 / 标清 / 标整 ) 是内存回收的一种思想 , 垃圾收集器就是 GC算法 的落地实现我们知道没有最完美的 GC算法 , 因此目前为止也没有完美的垃圾收集器 , 只是针对不同的情况选择最适合的收集器来进行分代收集 主要…

7种垃圾收集器

如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据…

垃圾收集器简介

HotSpot JVM收集器 上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。 Serial(串行GC)收集器 Serial收集器是一个新生代收集器,单线程执行&…

【JVM】7种经典的垃圾收集器

文章目录 1. 垃圾收集器概述2. Serial 收集器3. ParNew 收集器4. Paraller Scavenge 收集器5. Serial Old收集器6. Parller Old收集器7. CMS 收集器8. Garbage First 收集器 本文参考:深入理解Java虚拟机:JVM高级特性与最佳实践(第3版&#x…