Unity(2022.3.38LTS) - 基础概念
目录
一. 场景
二. 游戏对象
三. 组件
四. 标签
五. 静态游戏对象
六. 保存
一. 场景
Unity 场景是游戏或应用开发中的一个重要概念。
Unity 场景的组成元素:
它通常包含了各种游戏对象,比如 3D 模型、灯光、摄像机、脚本组件、音频源等等。
作用:
Unity 场景为开发者提供了一个可视化的空间,用于构建和组织游戏的环境、关卡和交互逻辑。例如,在一个冒险游戏中,一个场景可能是一个神秘的森林,其中有树木、石头、敌人、陷阱以及玩家角色的起始点。
创建和管理场景:
开发者可以通过 Unity 的编辑器轻松创建新的场景,添加、删除和修改其中的对象。还能设置场景的起始状态、加载顺序等。比如,在一个多关卡的游戏中,可以按照关卡的顺序来管理和切换不同的场景。
场景的优化:
由于场景中可能包含大量的元素,为了保证游戏的性能,需要进行优化。这包括减少多边形数量、合理使用纹理、控制灯光数量和复杂度等。例如,对于远处的物体,可以使用低精度的模型来节省资源。
二. 游戏对象
在 Unity 中,游戏对象(GameObject)是构成游戏场景的基本单元。
定义与作用:
游戏对象可以被看作是各种组件的容器。它本身并不具备具体的功能,但通过添加不同的组件,如脚本、碰撞器、渲染器等,来赋予其特定的行为和外观。
常见类型:
比如角色、道具、环境物体等都可以是游戏对象。例如,玩家控制的角色是一个游戏对象,它可能包含了动画组件、移动脚本、碰撞检测组件等。
创建与操作:
可以在 Unity 编辑器中通过菜单或快捷键创建游戏对象,并对其进行移动、旋转、缩放等操作。
组件的添加与组合:
通过为游戏对象添加不同的组件来实现丰富的功能。比如,为一个立方体游戏对象添加刚体组件,使其能受到物理效果的影响;添加音频源组件,使其能播放声音。
层次结构:
游戏对象可以组织成层次结构,方便管理和控制。比如,一个车辆的游戏对象可以包含轮子、车身等子游戏对象。
实例化与复用:
可以通过代码或编辑器操作实例化游戏对象,实现相同类型对象的多次使用,提高开发效率。
游戏对象的销毁:
当不再需要某个游戏对象时,可以通过代码将其销毁,释放相关资源。
三. 组件
在 Unity 中,组件(Component)是赋予游戏对象功能和特性的关键元素。
常见的组件类型:
Transform
组件:用于控制游戏对象的位置、旋转和缩放。
- 例如,调整一个立方体的位置,使其处于场景的特定坐标。
Renderer
组件:决定游戏对象的外观显示,如网格渲染器(Mesh Renderer)、精灵渲染器(Sprite Renderer)等。
- 比如,为一个平面添加网格渲染器并指定材质,使其呈现出特定的颜色和纹理。
Collider
组件:用于碰撞检测,如盒型碰撞器(Box Collider)、球形碰撞器(Sphere Collider)等。
- 当两个带有碰撞器的游戏对象相互接触时,会触发相应的碰撞事件。
Rigidbody
组件:使游戏对象受到物理模拟的影响,如重力、力的作用等。
- 给一个球体添加刚体组件,它会在重力作用下下落并与其他物体碰撞。
Script
组件:通过编写脚本实现自定义的逻辑和行为。
- 例如,编写一个控制角色移动的脚本组件。
组件的作用:
组件让游戏对象能够实现各种功能,并且可以灵活地组合和搭配,以创建出复杂多样的游戏效果。
组件的添加和移除:
在 Unity 编辑器中,可以通过右键菜单或 Inspector 面板为游戏对象添加或移除组件。
组件之间的通信:
通过脚本可以在不同的组件之间传递数据和消息,实现协同工作。
自定义组件:
开发者还可以根据项目需求创建自己的自定义组件,以满足特定的功能要求。
四. 标签
在 Unity 中,标签(Tag)是用于标识和分类游戏对象的一种方式。
作用:
- 方便选择和分组:通过标签,可以快速选择具有相同标签的一组游戏对象进行操作。例如,在脚本中可以通过标签找到特定的游戏对象。
- 区分不同类型:用于区分不同类型的对象,以便在逻辑处理中进行不同的操作。
- 提高代码可读性:使代码更清晰易懂,明确对象的类别。
设置标签:
在 Unity 编辑器中,可以在 Inspector 面板中为游戏对象设置标签。
使用标签的示例:
假设在一个射击游戏中,有“玩家”、“敌人”和“障碍物”等标签。在编写射击逻辑的脚本时,可以通过判断游戏对象的标签来确定是否是敌人,从而执行相应的射击操作。
另外,如果要实现特定对象的碰撞处理,也可以根据标签来决定碰撞后的行为。比如,当“玩家”与“障碍物”碰撞时,玩家无法通过;而当“玩家”与“道具”碰撞时,获取相应的奖励。
五. 静态游戏对象
在 Unity 中,静态游戏对象(Static GameObject)具有一些特殊的属性和用途。
定义和特点:
静态游戏对象是指在游戏运行过程中不会移动、旋转或改变其形态的对象。它们被标记为“静态”后,Unity 会对其进行一些特殊的优化处理。
优化方面:
- 光照烘焙:静态对象在光照计算中可以进行烘焙,提高光照效果的性能。
- 物理计算优化:减少物理引擎对其的计算量,提高物理模拟的效率。
应用场景:
- 环境建筑:如房屋、山脉等不会移动的大型物体。
- 固定的道具:像桌子、椅子等不会被移动的物品。
设置为静态的影响:
一旦将游戏对象设置为静态,之后对其进行的一些动态修改可能会受到限制。
例如,在一个大型的开放世界游戏中,城市中的建筑物通常会被设置为静态对象,以便在光照和物理计算时进行优化,从而提高游戏的性能,使玩家能够更流畅地体验游戏。
六. 保存
在 Unity 中,保存项目和场景是非常重要的操作。
保存场景:
可以通过以下几种方式保存当前正在编辑的场景:
- 菜单栏:点击“File”(文件)->“Save Scene”(保存场景)或者“Save Scene As...”(另存为场景)。
- 快捷键:通常使用 Ctrl + S(Windows)或 Command + S(Mac)来快速保存场景。
保存项目:
- 同样在“File”(文件)菜单中,选择“Save Project”(保存项目)来保存整个项目的设置、资源等。
自动保存:
Unity 也提供了自动保存的功能,可以在“Edit”(编辑)->“Preferences”(首选项)->“General”(常规)中设置自动保存的时间间隔和相关选项。
保存的重要性:
及时保存可以避免因意外情况(如电脑故障、软件崩溃等)导致的工作丢失。
相关文章:
Unity(2022.3.38LTS) - 基础概念
目录 一. 场景 二. 游戏对象 三. 组件 四. 标签 五. 静态游戏对象 六. 保存 一. 场景 Unity 场景是游戏或应用开发中的一个重要概念。 Unity 场景的组成元素: 它通常包含了各种游戏对象,比如 3D 模型、灯光、摄像机、脚本组件、音频源等等。 作用…...
无人机之飞手必看篇
一、熟悉无人机设备 了解你的无人机:熟悉无人机的各个部分,包括遥控器、电池、螺旋桨和摄像头等。 预飞行检查:在每次飞行前进行预检查,确保所有部件正常工作,螺旋桨牢固,电池充满电。 二、选择适当的飞…...
数据结构(11)——二叉搜索树
欢迎来到博主的专栏:数据结构 博主ID:代码小豪 文章目录 二叉搜索树二叉搜索树的声明与定义二叉搜索树的查找二叉搜索树的插入二叉搜索树的中序遍历二叉搜索树的删除 二叉搜索树 二叉搜索树也称二叉排序树,是具备以下特征的二叉树 (1&#x…...
如何使用和配置 AWS CLI 环境变量?
欢迎来到雲闪世界。环境变量在配置和保护应用程序方面起着至关重要的作用,在使用 AWS CLI(命令行界面)时,它们的使用尤其重要。在这篇博客文章中,我们将深入探讨环境变量的世界,探索它们的用途、它们在 AWS…...
七、流程控制
if语句 在go语言中if语句的写法是比较简单的,也是很常见的 func main() {a : trueif a {fmt.Println("a is true")} }if else 语句 func main() {a : trueif !a {fmt.Println("a is true")} else {fmt.Println("a is false")} }el…...
【通过python启动指定的文件】
通过python启动指定的文件 在 Python 中,可以使用os模块的startfile函数(在 Windows 系统中)或者subprocess模块来启动指定的文件。 以下是使用os模块在 Windows 系统中的示例: import osfile_path "C:\\path\\to\\your\…...
区块链开源的项目有哪些?
区块链领域有许多开源项目,它们覆盖了从基础设施到应用层的不同方面。以下是一些著名的区块链开源项目: 1. Bitcoin (比特币):第一个去中心化的加密货币,源代码在 GitHub 上开源。它实现了区块链技术的基本概念。 2. Ethereum (…...
3152. 特殊数组 II(24.8.14)
题目 如果数组的每一对相邻元素都是两个奇偶性不同的数字,则该数组被认为是一个 特殊数组 。 你有一个整数数组 nums 和一个二维整数矩阵 queries,对于 queries[i] [fromi, toi],请你帮助你检查 子数组 nums[fromi…toi] 是不是一个 特殊数组…...
Android 全系统版本文件读写最佳适配,CV 即用(适配到 Android 14)
结合着Android的历史问题,我们需要这样写才行: 首先 manifest 部分 <manifest><!-- Devices running Android 12L (API level 32) or lower --><uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" a…...
【日记】朋友和他女朋友领证了(368 字)
正文 一定程度上感受到了驻场运维的水深火热,感觉成天到晚都在救火。今天下午就给人修了四五台机器…… 回想了一下,今天貌似还真没干什么。毕竟早上睁眼就是 8:35 了,给人吓得半死。 (感觉 AI 也很智障,当初就是发现音…...
行业大模型:信用评分大模型、生产优化大模型、库存管理大模型、物流行业大模型、零售行业大模型
金融行业大模型:信用评分大模型 信用评分模型在金融行业中扮演着至关重要的角色,它通过对个人或企业的信用状况进行评估,帮助金融机构有效控制风险,提高业务效率。以下是信用评分模型的特点及案例介绍: 信用评分模型…...
VSCode 搭配 Windows 下各种 C/C++ 编译器使用
Visual Studio Code(简称 VSCode)是一款由微软开发的免费、开源的代码编辑器,它支持多种编程语言,包括 C 和 C++。VSCode 提供了丰富的扩展和定制功能,使得开发者能够根据自己的需求进行个性化设置。在 Windows 环境下,搭配合适的 C/C++ 编译器,VSCode 能够成为一个强大…...
【JavaEE】线程池和定时器
🔥个人主页: 中草药 🔥专栏:【Java】登神长阶 史诗般的Java成神之路 ✏️一.线程池 在Java中,线程池(Thread Pool)是一种用于管理并发线程的机制,它提供了一种创建、复用和管理一组…...
《Unity3D网络游戏实战》通用服务器框架
服务端程序的两大核心是处理客户端的消息和存储玩家数据 模块划分 游戏流程 连接阶段:客户端调用Connect连接服务端即为连接阶段。连接后双端即可通信,但服务端还不知道玩家控制的是哪个角色。于是客户端需要发送一条登录协议,协议中包含用户…...
LeetCode404 左叶子之和
前言 题目: 404. 左叶子之和 文档: 代码随想录——左叶子之和 编程语言: C 解题状态: 成功解答! 思路 注意左叶子节点的定义:节点A的左孩子不为空,且左孩子的左右孩子都为空(说明是…...
nodejs操作redis的工具类
const Redis require("ioredis");async function generateStreamID() {// 生成时间戳(毫秒级)const timestamp Date.now();// 生成唯一的序列号const sequenceNumber Math.random() * 1000; // 根据需要生成唯一的序列号// 构建 Stream ID&…...
关于wsl2与win11互联互通的问题
首先搞清楚使用场景。我是在win11上写go做后端api,在WSL2 的Linux上写前端页面。 我发现在windows 里写go语言没啥问题,我的后端api部署在win11上。但是在win11上写前端经常会遇到莫名其妙的故障,一会npm包下不来一会说包之间的依赖结构出问题…...
C++ 类型转换
目录 0.前言 1.C语言类型转换 1.1隐式类型转换 1.2显式类型转换 2.C强制类型转换 2.1 static_cast 2.2 reinterpret_cast 2.3 const_cast 2.4 dynamic_cast 3.为什么C需要4种强制类型转换 3.1类型转换的多样性需求 3.2提高类型转换的安全性 3.3提供更明确的语义 3.4支持高级编程…...
2024挖漏洞给报酬的网站汇总,兼职副业3天收益2k
文章目录 一、众测平台(国内)二、前沿漏洞研究奖励计划三、行业SRC四、企业应急响应中心-SRC-汇总 1、互联网企业2、生活服务、住宿、购物相关企业3、物流、出行、旅游4、金融相关企业5、视频游戏直播社交娱乐6、教育、问答、知识付费7、泛科技通讯物联网云服务8、安全企业9、其…...
0到1学习Google广告(2):掌握展示位置及排名规则丨出海笔记
大家好, 我是专注谷歌广告和谷歌SEO的谷哥哥哥,感谢出海笔记Alan邀请。今天我们来聊聊广告界的大拿——谷歌广告。在这个数字营销的黄金时代,无论是B2B、B2C还是品牌类客户,谷歌广告都是一个不容忽视的战场。那么,如何在这个战场上…...
MySQL数据库读超时/SELECT查询超时 杂记
本文环境 阿里云RDS MySQL 8.0.34 当客户端向MySQL数据库发送一条SQL之后,由于SQL很慢很慢,它会在什么时候结束呢? 查看 max_execution_time 变量值 mysql> show variables like max_execution_time; --------------------------- | Variable_name | Value | ------…...
docker数据卷:
docker数据卷: 容器和宿主机之间数据共享 容器和宿主机之间数据共享——————挂载卷————容器内的目录和宿主机的目录进行挂载,实现数据文件共享 容器的生命周期有限,一旦重启所有对容器内部文件数据的修改以及保存的数据都会被初始…...
【linux】linux中如何通过systemctl来创建和管理服务
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…...
WPF-实现多语言的静态(需重启)与动态切换(不用重启)
目录 一、多语言切换(需重启) 1、配置文件添加Key 2、新增附加属性当前选择语言 3、创建资源文件 4、初始化多语言集合 5、切换多语言并更新配置文件 6、应用程序启动根据配置切换多语言 7、使用 二、多语言切换(无需重启)…...
UE5学习笔记12-为角色添加蹲下的动作
一、一点说明 1.蹲下使用了ACharacter类中Crouch();函数,函数功能是先检查是否存在运动组件,将bool类型的变量变为true,该变量代表是想要蹲下。 2.通过源码可知存在是否蹲下的bool变量bIsCrouched如图,如果对:1有疑问请搜索C位域 …...
【笔记】Android 多用户模式和用户类型
简介 用户界面:System 》Multiple Users 》 开关多用户模式。 一般是不同用户模式下,有修改Settings应用配置的权限差异,因此需要通过用户类型对功能进行判断限制。 代码 通过UserManager可以获取当前用户的信息。 frameworks/base/core/…...
SQL基础——MySQL的索引
简介:个人学习分享,如有错误,欢迎批评指正。 一、概述 介绍 索引是通过某种算法,构建出一个数据模型,用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表&…...
【开发语言】面向对象和面向过程开发思路的区别
引入: 我总结了 面向过程的开发语言思路:1.我要干啥?2.怎么才能实现 面向对象的开发语言思路:1.我要研究谁?2.他能干啥 详解: 面向过程的开发语言思路 我要干啥? 在面向过程的开发中&a…...
谷歌账号登录的时候提示被停用,原因是什么,账号还有救吗?该如何处理?
今日早上,有个久违的朋友找到我说,要恢复账号。 他的情况是这样的:7月21日的时候,他发现自己的谷歌账号登录的时候提示活动异常先,需要输入手机号码验证才能恢复账号。但是输入了自己和亲友们的多个手机号码都无法验证…...
数据库复习笔记
写在最前, 写文章的初衷只是为了复习与记录自己的成长,笔者目前水平还有待提高,文章中难免会出现许多问题与错误,文章内容仅供参考,有不足的地方还请大家多多包涵并指正,谢谢~ 第八章 T-SQL程序结构 8.…...
wordpress 高亮代码/seo指的是什么意思
引言互联网时代,信息传输的基础媒介是比特流,即承载着各种有效信息的01串。换句话说,我们在手机上或者电脑上看到的各类媒体信息,例如文字信息、图片信息亦或是视频信息,其根源上都是一些由二进制的0和1组成的比特流。…...
wordpress 此网页包含重定向循环/刷神马网站优化排名
榜单解读: 2021年度,内蒙古上榜的200强品牌总价值6632.7亿元,两大品牌价值超过千亿元,131个品牌其价值在10亿元以下,入围门槛为0.38亿元。 依据榜单可知,内蒙古品牌200强主要分布在该省12个地区,…...
组织部建设网站示范材料/网站关键词优化工具
装饰模式:在不改变原类(对象)和继承的情况下动态扩展对象功能,通过包装一个对象来实现一个新的具有原对象相同接口的新的对象。在设计原则中,有一条,多用组合,少用继承,装饰模式正是…...
access做动态网站/主流搜索引擎有哪些
2019独角兽企业重金招聘Python工程师标准>>> 为了让mac系统能够实现更多的操作,现在很多用户都会在mac上使用虚拟机,且越来越多的用户正不断认识mac虚拟机,了解它的使用方法,从众多虚拟机中寻找最适合使用的一款虚拟机…...
自己可以接单做网站吗/搜索引擎营销有哪些方式
RockerMQ简介RocektMQ是阿里巴巴在2012年开源的一个纯java、分布式、队列模型的第三代消息中间件,不仅在传统高频交易链路有着低延迟的出色表现,在实时计算等大数据领域也有着不错的吞吐。2016年11月11号,双十一大促见证了RocketMQ低延迟存储…...
东莞市官网网站建设公司/百度推广seo怎么学
承诺升级理论(The Theory of Escalating Commitment): “继续错误的代价由别人承担,而承认错误的代价由自己承担。”这句话是诺贝尔经济学奖获得者Joseph Stiglitz的生活哲学。 Joseph E.Stiglitz,1943年出生…...