Unity框架中的核心类

框架,核心 · 浏览次数 : 45

小编点评

**Component** 组件是 Unity 中用于控制游戏对象的行为和外观的基类。它提供了一些通用的方法和属性,可以帮助我们方便地对游戏对象进行控制和操作。 **基类:Object** 基类是所有 Unity对象的父类,包括游戏对象、组件、资源等。它提供了一些通用的方法和属性,例如 `name`、`tag`、`hideFlags` 等。 **Component 类** Component 类是基类的扩展类,提供了一些便捷的方法和属性,可以帮助我们方便地对游戏对象进行控制和操作。例如,`gameObject` 获取当前组件所在的游戏对象,`transform` 获取当前组件所在的游戏对象的 Transform组件,`GetComponent` 获取指定类型的组件,`AddComponent` 添加指定类型的组件等等。 **常用方法和属性** * `gameObject`:获取当前组件所在的游戏对象。 * `transform`:获取当前组件所在的游戏对象的 Transform组件。 * `GetComponent`:在当前游戏对象中,获取指定类型的组件。 * `GetComponents`:在当前游戏对象中,获取指定类型的所有组件。 * `SendMessage`:向当前游戏对象发送消息。 * `SendMessageUpwards`:向当前游戏对象及其父对象发送消息。 * `BroadcastMessage`:向当前游戏对象及其所有子对象发送消息。 * `CompareTag`:比较当前游戏对象的标签是否与指定标签相同。 **示例** ```csharp // 创建游戏对象 GameObject go = GameObject.CreatePrimitive("Cube"); // 获取组件 Component component = go.GetComponent(); // 设置组件属性 component.material.color = Color.red; ``` **其他** * Unity 提供一些其他组件,例如 `Rigidbody`、`Collider`、`MeshFilter` 等,可以用于实现各种游戏对象的功能。 * 在游戏开发中,通常需要使用 `GameObject`、`Component` 等类来实现游戏的各种功能。

正文

组件:Component
在Unity中,所有的游戏对象都可以挂载组件。组件控制着游戏对象的行为和外观,例如渲染、动画、碰撞检测等。
而Component就是组件的基类,提供了一些通用的方法和属性,例如gameObject、transform等。
Component类提供了许多方便的方法和属性,可以帮助我们方便地对游戏对象进行控制和操作。
Component类中常用的方法和属性:
gameObject:获取当前组件所在的游戏对象。
transform:获取当前组件所在的游戏对象的Transform组件。

GetComponent:在当前游戏对象中,获取指定类型的组件,例如GetComponent<Renderer>()可以获取游戏对象的渲染组件。
GetComponents:在当前游戏对象中,获取指定类型的所有组件。

SendMessage:向当前游戏对象发送消息。
SendMessageUpwards:向当前游戏对象及其父对象发送消息。
BroadcastMessage:向当前游戏对象及其所有子对象发送消息。

CompareTag:比较当前游戏对象的标签是否与指定标签相同。

组件:Transform
在Unity中,每个游戏对象都必须挂载Transform组件,它控制着游戏对象在场景中的位置、旋转和缩放。Transform组件提供了一些属性和方法,可以帮助我们对游戏对象进行控制和操作。
在游戏开发中,我们通常需要使用Transform组件来实现游戏对象的移动、旋转、缩放等功能。
Transform类中常用的属性和方法:
position:获取或设置游戏对象在场景(世界坐标系)中的位置。
rotation:获取或设置游戏对象在场景(世界坐标系)中的旋转。

localPosition:获取或设置游戏对象在其父对象坐标系中的位置。
localRotation:获取或设置游戏对象在其父对象坐标系中的旋转。
localScale:获取或设置游戏对象在其父对象坐标系中的缩放。

Translate:在当前游戏对象的坐标系中移动游戏对象,可以通过参数设置相对于那个坐标系。
Rotate:在当前游戏对象的坐标系中旋转游戏对象,可以通过参数设置相对于那个坐标系。
LookAt:使游戏对象面向指定位置。

GetChild:获取指定索引位置的子游戏对象。
GetComponentsInChildren:获取当前游戏对象及其所有子游戏对象上指定类型的组件。

 

游戏对象:GameObject
在Unity中,GameObject是场景中的基本构建单元,它表示了场景中的游戏对象。每个游戏对象都可以挂载一个或多个组件,组件可以控制游戏对象的行为和外观。例如,渲染组件用于控制游戏对象的外观,物理组件用于控制游戏对象的运动等等。
在游戏开发中,我们通常需要使用GameObject类来创建游戏对象,并挂载相应的组件来实现游戏的各种功能。
GameObject类提供了一些方便的方法和属性,可以帮助我们方便地对游戏对象进行控制和操作。
name:获取或设置游戏对象的名称。
transform:获取当前游戏对象的Transform组件。

activeSelf:获取当前游戏对象是否处于激活状态。
SetActive:设置当前游戏对象的激活状态。
SetActiveRecursively:递归设置当前游戏对象及其所有子对象的激活状态。

GetComponent:获取指定类型的组件,例如GetComponent<Renderer>()可以获取游戏对象的渲染组件。
AddComponent:添加指定类型的组件,例如AddComponent<Rigidbody>()可以添加游戏对象的物理组件。

SendMessage:向当前游戏对象发送消息。
SendMessageUpwards:向当前游戏对象及其父对象发送消息。
BroadcastMessage:向当前游戏对象及其所有子对象发送消息。

 

基类:Object
Object是所有Unity对象的基类,包括游戏对象、组件、资源等。
Object类提供了一些通用的方法和属性,例如name、tag、hideFlags等。这些方法和属性可以用于对对象进行操作,例如获取或设置对象的名称、标签、隐藏标志等。
在游戏开发中,我们通常需要使用Object类的一些派生类,例如GameObject、Component等来实现游戏的各种功能。
Object类中常用的方法和属性:
name:获取或设置对象的名称。
tag:获取或设置对象的标签。
hideFlags:获取或设置对象的隐藏标志。

Destroy:销毁对象。
Instantiate:实例化对象。
FindObjectOfType:查找指定类型的对象。
FindObjectsOfType:查找指定类型的所有对象。

 

静态工具类:Time
Time是Unity中的一个静态类,它包含了一些静态属性和方法,用于控制游戏中的时间流逝。
Time类提供了一些属性和方法,可以帮助我们方便地对游戏时间进行控制。
在游戏开发中,我们经常需要使用Time类的属性和方法,例如控制游戏速度、计时器等功能。
Time类中常用的属性和方法:
time:获取游戏开始后的总时间(以秒为单位)。
timeSinceLevelLoad:获取当前场景加载后的时间(以秒为单位)。

deltaTime:获取上一帧到当前帧所用的时间(以秒为单位)。
fixedTime:获取游戏开始后的总固定时间步长(以秒为单位)。
fixedDeltaTime:获取固定时间步长(以秒为单位)。

timeScale:获取或设置时间缩放比例, 常用于游戏暂停与重新开始,它的值会影响deltaTime的大小,当设置为0时则deltaTime的大小也变成了0表示游戏暂停。

maximumDeltaTime:获取或设置最大的时间增量。
smoothDeltaTime:获取平滑的时间增量(以秒为单位)。

 

 

 

与Unity框架中的核心类相似的内容:

Unity框架中的核心类

组件:Component 在Unity中,所有的游戏对象都可以挂载组件。组件控制着游戏对象的行为和外观,例如渲染、动画、碰撞检测等。 而Component就是组件的基类,提供了一些通用的方法和属性,例如gameObject、transform等。 Component类提供了许多方便的方法和属性,可以

Unity框架与.NET, Mono框架的关系

什么是C# C#是一种面向对象的编程语言。 什么是.NET .NET是一个开发框架,它遵循并采用CIL(Common Intermediate Language)和CLR(Common Language Runtime)两种约定, CIL标准为一种编译标准:将不同编程语言(C#, JS, VB等)使

动手学Avalonia:基于SemanticKernel与硅基流动构建AI聊天与翻译工具

Avalonia是什么? Avalonia是一个跨平台的UI框架,专为.NET开发打造,提供灵活的样式系统,支持Windows、macOS、Linux、iOS、Android及WebAssembly等多种平台。它已成熟并适合生产环境,被Schneider Electric、Unity、JetBrai

【Unity3D】Cesium加载大地图

1 前言 ​ Cesium 是一个地球可视化平台和工具链,具有数据切片、数据分发、三维可视等功能。 ​ Cesium 支持 JS、Unity、Unreal、O3DE、Omniverse 等平台,框架如下。 ​ Cesium 相关链接如下: Cesium 官网:https://cesium.com C

Unity 编辑器中获取选中的文件夹、文件路径

编辑器中获取选中的文件夹、文件路径 using UnityEditor; using UnityEngine; using Object = UnityEngine.Object; public class MyEditorScript { [MenuItem("Assets/PrintSelect

扩展实现Unity协程的完整栈跟踪

现如今Unity中的协程(Coroutine)方案已显得老旧,Unitask等异步方案可以直接解决如异常捕获等各类问题, 并且Unity官方也在开发一套异步方案,但现阶段还是需要在协程这个方案上继续琢磨。 Unity协程中无法输出完整的栈跟踪,因为协程编译后会转换为IL编码的状态机,中间存在栈回到堆

Unity三维数学总结

三维向量和三角函数 三维向量 向量是指一个同时具有大小和方向,且满足平行四边形法则的几何对象。 向量的模 po点相对于世界坐标原点的距离: po.magnitude。 标准向量,归一向量,指的是将向量的模变成1,方向不变。改变后的向量: po.normalized。 向量的方向 求向量的方向(求向量

[Unity] Dreamteck Splines实现沿路径移动功能

Dreamteck Splines实现沿路径移动功能 最近有一个“让物体沿固定路径移动”的需求,因此接触到了Dreamteck Splines插件。 Dreamteck Splines可以很方便地绘制各种插值曲线,但在实现物体移动的时候却遇到了很多坑,因此在这里记录一下。 1. 绘制路径线 首先,让

Unity 利用Cache实现边下边玩

现在手机游戏的常规更新方案都是在启动时下载所有资源更新,游戏质量高的、用户粘性大的有底气,先安装2个G,启动再更新2个G,文件小了玩家还觉得品质不行不想玩。 最近在做微信、抖音小游戏,使用他们提供的资源缓存方案,现在要转成Android APP, 也想用这种边下边玩的机制把首包做小。 其实很简单,直

[Unity] 实现AssetBundle资源加载管理器

实现Unity AssetBundle资源加载管理器 AssetBundle是实现资源热更新的重要功能,但Unity为其提供的API却十分基(jian)础(lou)。像是自动加载依赖包、重复加载缓存、解决同步/异步加载冲突,等基础功能都必须由使用者自行实现。 因此,本篇博客将会介绍如何实现一个Ass