首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Unity零基础到入门 ☀️| 学会这些Unity常用组件,Unity中必备组件技能学习!

Unity零基础到入门 ☀️| 学会这些Unity常用组件,Unity中必备组件技能学习!

作者头像
呆呆敲代码的小Y
发布于 2021-08-20 04:03:38
发布于 2021-08-20 04:03:38
3.5K00
代码可运行
举报
运行总次数:0
代码可运行

⭐️组件Component

????前言

之前发了两篇博客是简单介绍了下Unity的实用知识点简单使用布局


????????❤️ Unity ❉ 基础知识 ☀️| 学会这些Unity实用知识点,我也可以做小游戏啦!(^_−)☆

???????????? Unity ❉ 基础知识 ☀️| 轻松学会 Unity界面布局和简单实例——入门级!(^_−)☆


那本篇博客来简单介绍一下Unity中一些组件的介绍 ????


????简介

组件是在游戏对象(Game Object)中的实现某些功能的集合

无论是模型、 GUI、灯光还是摄像机,所有游戏对象本质上都是一个空对象挂载了不同类别的组件,从而让该游戏对象拥有不同的功能。

简单说一下Unity开发的框架:项目—>场景—>游戏对象—>组件—>属性

一个游戏由多个场景(Scene)组成

一个场景由多个游戏物体(GameObject)组成

一个游戏物体由多个组件(Component)组成

对于一个空游戏对象来说,如果为其添加一个摄像机组件,那么该对象就是一架 摄像机;

如果为其添加了网格过滤(Mesh Filter)组件,那么该对象就是一个模 型;如果为其添加了灯光组件,该对象就是一盏灯光。

代码语言:txt
AI代码解释
复制
                                                     脚                               本                                                 \color{FF66FF}{脚本}                  脚本在Unity中也是一种组件

????Unity工程结构

在介绍Unity的各种组件之前,先来简单介绍下Unity的工程结构

一般来说,一个Unity工程正常都会有这四个文件夹

Assets :是用来存储⼯程所需的所有资源⽂件 (必备)

Library :是⼯程所需要的所有资源库(类库)是Unity⾃动给我们⽣成的,如果一个Unity工程开发时间长了,这个文件夹可能会很大,一般来说直接删除了,工程也可以正常开发使用

ProjectSetting :是我们当前Unity工程的一些⼯程设置⽂件,就是下图上面这些设置相关就存储在这个文件夹,删除的话就要重新配置了

Temp :是临时⽂件,一般来说也没啥用,可看情况选择去留


????几种常用组件介绍

????Transform组件

Transform 是物体模型最基本的组件,基本上所有物体都有

来看看官方的介绍: The Transform component determines the Position, Rotation,and Scale of each object in the scene. Every GameObject has a Transform. The position, rotation and scale values of a Transform are measured relative to the Transform’s parent. If the Transform has no parent, the properties are measured in world space 译文: 变换组件决定场景中每个对象的位置、旋转和比例。每个游戏对象都有一个转换 变换的位置、旋转和缩放值是相对于父变换计算的。如果transform没有父物体,属性将会根据在世界空间中计算

总结一句话就是——Transform是用于控制游戏对象的位置、旋转和大小比例的

下图分别是Transform的Inspector面板属性图和各种属性


????Mesh Filter(网格过滤器)和Mesh Renderer(网格渲染器)

Mesh:是指模型的网格,建模就是建网格。细看Mesh,可以知道Mesh的主要属性内容包括顶点坐标,法线,纹理坐标,三角形绘制序列等其他有用属性和功能。因此建网格,就是画三角形;画三角形就是定位三个点。

Mesh Filter(网格过滤器):内包含一个Mesh组件,可以根据MeshFilter获得模型网格的组件,也可以为MeshFilter设置Mesh内容。

Mesh Render(网格渲染器):是用于把网格渲染出来的组件。MeshFilter的作用就是把Mesh扔给MeshRender将模型或者说是几何体绘制显示出来。

每个GameObject都可以有一个MeshFilter组件,也可以没有。如果有该组件,那么一定有Mesh属性,而且有MeshFilter的话,就必须要Mesh Renderer才能将此网格渲染出来,不然是看不见该网格的。

大概就是这么个逻辑:MeshFilter->Mesh->Mesh Renderer


????Collider (物体碰撞器)

碰撞器是Unity引擎为模拟物理效果的组件

功能:可以让两个带有碰撞器的游戏对象相互接触的时候不会穿透过去,而是会发生一个碰撞效果

一般来说创建一个物体时系统会自动匹配相应的Collider(碰撞器)

创建的时候先选中游戏对象,然后在Inspector面板上点击Add Component ,然后添加想要的碰撞器就行

选中游戏对象->Inspector面板->Add Component->(想要的组件)

(添加大部分组件都是这个流程)

碰撞器有以下几种,下面就简单介绍一下,这几种碰撞器组件属性其实都差不多,就是调整大小的时候面板属性会有所差别

1.盒碰撞器(Box Collider)

2.椭圆碰撞器(Sphere Collider)

3.胶囊碰撞器(Capsule Collider)

4.网格碰撞器(Mesh Collider)

5.车轮碰撞器(Wheel Collider)

6.地形碰撞器(Terrain Collider)

碰撞器属性介绍

属性

功能

Edit Colloder

手动编辑Collider

Is Trigger

是否为触发器

Material

材质

Center

碰撞器的中心点,相对于物体的自身坐标

Size

碰撞器的大小

Radius

碰撞器的半径大小

Radius

碰撞器的半径大小

Height

圆柱体高度

Direction

方向

Mesh

选择网格


????刚体(RigidBody)

上面介绍了碰撞体,这下来介绍刚体

其实他俩都是为了模拟物理引擎效果而存在的,一般来说也会配合使用

在Unity理引擎中,使用 刚体(RigidBody) 来模拟这种物理效果.

当一个游戏对象被赋予刚体组件之后,游戏引擎就会对其进行物理效果的计算和模拟。同时我们也可以给这个对象施加各种作用力,让它运动起来。

另外如果要实现重力的效果,那么相应的游戏物体都必须附上刚体组件。

组件添加方法还是老样子,选中游戏对象->Inspector面板->Add Component->RigidBody

面板属性

属性介绍

属性

作用

Mass

质量质量越大,惯性越大。建议场景中的物体质量最好不要相差100倍率以上。防止两个质量相差太大的物体碰撞后会产生过大的速度,从而影响游戏性能及呈现的效果。

Drag

阻力(摩擦力) 这里指的是空气阻力,属性数值影响阻碍此物体对象的直线运动的速度效果。当游戏物体受到某个作用力的时候,这个值越大越难移动。如果设置成无限的话,物体会立即停止移动

Angular Drag

角阻力(旋转摩擦力) 同样指的是空气阻力,只不过是用来阻碍物体旋转的。如果设置成无限的话,物体会立即停止旋转

Use Gravity

使用重力效果不勾选,则不会受到重力影响。

Is Kinematic

是否符合运动学的(是否受到物理引擎的驱动)勾选后,变成不再受物理引擎的影响,改为受Transform的影响。即不再有重力,不再被碰撞等,只会呆在Transform规定的位置上不动,物体撞击时候像一堵墙一样不会倒,位置不会因碰撞而发生改变

Interpolate

差值类型如果看到刚体移动的时候运动的不是很平滑,可以选择一种平滑方式。即:平滑物体运动的曲线None(无差值):不使用差值平滑Interpolate(差值):根据上一帧来平滑移动 Extrapolate(推算):根据推算下一帧物体的位置来平滑移动

Collision Detection

碰撞侦测。用来改变物体碰撞检测的精度Discrete(离散):默认的碰撞检测方式。但若当物体A运动很快的时候,有可能前一帧还在B物体的前面,后一帧就在B物体后面了,这种情况下不会触发碰撞事件,所以如果需要检测这种情况,那就必须使用后两种检测方式Continuous(连续):这种方式可以与有静态网格碰撞器的游戏对象进行碰撞检测。 可以避免因物体移动速度过快而穿过另一个物体的情况Continuous Dynamic(动态连续):这种方式可以与所有设置了2或3方式的游戏对象进行碰撞检测

Constraints

约束 约束位置或旋转时的x/y/z坐标,使其Freeze(冻结)。比如想控制游戏对象人物上台阶不会摔倒,或者高速碰到一个墙壁物体时不会胡乱转动的话,则要冻结x,y和z轴的旋转centerOfMass:相对于变换原点的质心angularVelocity 刚体的角速度向量,修改它可以使刚体进行旋转


????脚本

Unity中的脚本也算是组件的一种,可以挂在游戏物体上,同时也是有限制的,并不是所有的脚本都可以挂到对象上面的

关于脚本这部分会再写一篇文章单独详细介绍,这里就简单提及一下好啦

可以先看下图简单了解下


????添加、获取和销毁组件的方法

既然简单提到脚本了,那就正好先说一下怎样在脚本中添加、获取和销毁组件的方法吧

添加组件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GameObject Cube= GameObject.CreatePrimitive(PrimitiveType.Cube);//创建一个方格
Cube.AddComponent<BoxCollider>();//添加盒形碰撞器组件
Cube.AddComponent<Rigidbody>();//添加刚体组件
Cube.AddComponent<Test>();//添加Test脚本

获取组件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
BoxCollider boxCollider = Cube.GetComponent<BoxCollider>();//获取盒形碰撞器组件
Rigidbody rigidbody = Cube.GetComponent<Rigidbody>();//获取刚体组件
Test test= Cube.GetComponent<Test>();//获取某个Test脚本

GetComponent
GetComponents

GetComponentInChildren
GetComponentsInChildren

GetComponentInParent
GetComponentsInParent

销毁组件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//()中的参数为创建相应组件时的组件名称
Destroy(boxCollider );//销毁盒形碰撞器组件
Destroy(rigidbody);//销毁刚体组件

????总结

本篇博客对于Unity中几种最常见和最常用的组件做了一个介绍

当然在Unity中的组件数不胜数,都是对应相应的功能需求来做的,在这里就不对赘述了,以后用得到再单独介绍也不迟

如果觉得有用可以给个三连支持一下呀~奥力给!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/05/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Unity 基础 - 刚体和 Collider
Unity 中的 物理引擎能够真实的模拟现实世界的物理效果,在 Unity 中使用的是 NVIDIA 的 PhysX 物理引擎,在 Unity 中使用 Rigidbody 让游戏对象受物理引擎控制。
hrscy
2018/08/30
1.9K0
Unity 基础 - 刚体和 Collider
Unity中进行碰撞检测的基本方法、原理与实现例子
Unity作为一款强大的游戏开发引擎,提供了物理引擎来实现2D碰撞检测和响应。下面将说明如何使用Unity的物理引擎来进行2D碰撞检测和响应,以及一些常用的物理属性。
一凡sir
2023/08/05
4.1K0
unity3d的入门教程_3D网课
一、Unity下载与安装 参考博客:Unity Hub、unity、PlasticSCM安装
全栈程序员站长
2022/09/22
4.8K0
Unity3D之GameObject
当涉及到游戏开发时,Unity3D的GameObject(游戏对象)是一种非常基本且重要的概念。GameObject代表了在游戏场景中显示、交互和操控的实体。它可以是角色、道具、环境等各种元素的基本单元。
叶茂林
2023/07/30
7430
Unity基础(12)-物理系统
Unity是一款3D引擎软件,内置NVIDIA PhysX物理引擎,使3D物体具备物理属性,产生物理效果。
孙寅
2020/06/02
2K0
Unity脚本编程:C#脚本中的常用组件详解
在Unity游戏开发中,C#脚本是控制游戏逻辑的核心工具。通过编写脚本,开发者可以控制游戏对象的行为、交互和动态变化。本文将深入探讨Unity脚本编程中常用的C#脚本组件,包括 Transform、Rigidbody、Collider、Input、Time 和 Mathf,并通过示例代码展示它们的实际应用。
Front_Yue
2025/03/20
7680
Unity脚本编程:C#脚本中的常用组件详解
unity官方案例精讲(第三章)--星际航行游戏Space Shooter
导入的工程包中,包含着一个完整的 _scene---Main场景,创建一个全新场景,会在其中实现大部分功能
酱紫安
2020/10/15
3.8K0
unity官方案例精讲(第三章)--星际航行游戏Space Shooter
Unity【Colliders碰撞器】和【Rigibody刚体】的应用——小球反弹效果
一、给地板floor添加碰撞器,这里我们不添加刚体Rigibody,因为会使地板因为重力而下落。
用户11315985
2024/10/16
1.2K0
Unity【Colliders碰撞器】和【Rigibody刚体】的应用——小球反弹效果
30分钟了解所有引擎组件,132个Unity 游戏引擎组件速通!【收藏 == 学会】
Mesh Filter 组件包含对网格的引用。该组件与同一个游戏对象上的 Mesh Renderer 组件配合使用;Mesh Renderer 组件渲染 Mesh Filter 组件引用的网格。
呆呆敲代码的小Y
2023/07/05
4.7K0
30分钟了解所有引擎组件,132个Unity 游戏引擎组件速通!【收藏 == 学会】
Unity-BattleStar丨8. 物理引擎Rigidbody组件、Collider组件、Raycast
游戏中物理引擎用于模拟真实世界物理环境效果,要实现游戏对象的物理行为,Rigidbody(刚体)组件是必不可少的,当挂载该组件之后,物体立刻受到重力等物理效果影响。如果对象身上还挂载着Collider(碰撞)组件,那么该对象还受到碰撞物理效果影响,例如游戏中的被车撞飞
星河造梦坊官方
2024/08/14
4720
Unity-BattleStar丨8. 物理引擎Rigidbody组件、Collider组件、Raycast
[学习笔记]unity3d-物理引擎(一)
刚体 简介 带有刚体组件的游戏物体。 add Compoment-physics-Rigidbody 刚体组件可使游戏对象受物理引擎控制,在受到外力时产生真实世界中的运动。 物理引擎:模拟真实世界中物体物理特性的引擎。 属性 质量 Mass:物体的质量。 阻力 Drag:当受力移动时物体受到的空气阻力。 0表示没有空气阻力。极大时可使物体停止运动,通常砖头0.001,羽毛设置为10。 角阻力 Angular Drag:当受扭力旋转时物体受到的空气阻力。 0表示没有空气阻力,极大时使物体停止旋转。
六月丶
2022/12/26
1.9K0
[学习笔记]unity3d-物理引擎(一)
Unity面试刷题库
答:在构造函数如果有public修饰的静态构造函数时会报:“静态构造函数中不允许出现访问修饰符”,如果什么修饰符都不加的话不会报错,静态构造函数一般是起初始化作用。
孙寅
2020/06/02
4.6K0
Unity基础(14)-事件系统
1.Awake:用于在游戏开始之前初始化变量或游戏状态。在脚本整个生命周期内它仅被调用一次.Awake在所有对象被初始化之后调用,所以你可以安全的与其他对象对话或用诸如GameObject.FindWithTag()这样的函数搜索它们。每个游戏物体上的Awake以随机的顺序被调用。因此,你应该用Awake来设置脚本间的引用,并用Start来传递信息Awake总是在Start之前被调用。它不能用来执行协同程序。
孙寅
2020/06/02
1.9K0
U2D【Move and Jump】
在Unity中使用Transform组件实现角色的平滑移动,可以通过以下步骤进行:
用户11315985
2024/10/16
5910
U2D【Move and Jump】
Unity开发入门-环境安装及素材导入
https://docs.unity3d.com/cn/current/Manual/Input.html
码客说
2023/07/24
8350
Unity开发入门-环境安装及素材导入
从零开始制作Roll-a-ball tutoria滚动的小游戏(Unity3D)
&emsp; 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧。
恬静的小魔龙
2022/08/07
1.9K0
从零开始制作Roll-a-ball tutoria滚动的小游戏(Unity3D)
【Unity3D开发小游戏】Unity3D零基础一步一步教你制作跑酷类游戏
最近跑酷游戏比较流行,开发教程也很多,但是大部分都是不太详细,这篇文章就带着大家一步一步开发出来一个跑酷类的游戏,教程比较基础,适合大部分Unity开发的初学者。 还有就是,此专栏已经开通收费,里面整合的都是小游戏的开发教程,想要学习Unity开发游戏的,都可以订阅一下。 如果文章出现什么问题,就及时联系我
恬静的小魔龙
2022/08/07
2.1K0
【Unity3D开发小游戏】Unity3D零基础一步一步教你制作跑酷类游戏
一篇上手LayaAir的3D物理引擎
昨天,我们分享了一篇2D物理文档《LayaAirIDE的可视化2D物理使用文档》。
Layabox Charley
2021/01/12
5.3K0
一篇上手LayaAir的3D物理引擎
Unity引擎基础知识
Unity引擎是一款由Unity Technologies公司开发的跨平台游戏开发工具,广泛应用于2D和3D游戏的创建。它提供了丰富的API和工具,使得开发者能够轻松地创建交互式的3D场景和应用程序。
用户11315985
2024/10/16
7130
Unity引擎基础知识
unity3d怎么挖坑_unity游戏教程
1、rigidbody.addforce(Vector3 * speed) (见roll-a-ball)
全栈程序员站长
2022/09/29
3.3K0
unity3d怎么挖坑_unity游戏教程
相关推荐
Unity 基础 - 刚体和 Collider
更多 >
领券
一站式MCP教程库,解锁AI应用新玩法
涵盖代码开发、场景应用、自动测试全流程,助你从零构建专属AI助手
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档