UnityAPI的学习——Object类

Object类是Unity中所有对象的基类、例如GameObject、Component、Material、Shader、Texture、Mesh、Font等都是Object的子类

Object类实例方法

在Object类中,涉及到的实例方法主要有GetInstanceID方法
GetInstanceID方法:Object对象ID
基本语法

public int GetInstanceID();

功能说明
此方法用来返回Object对象的实例化ID
1、每个Object对象的实例、Object子类的实例如GameObject、Component等以及Object子类的子类的实例例如Transform、Rigidbody等在工程中都有唯一的ID(int类型)。
并且从程序开始运行到结束,除非对象被销毁,否则每个实例对应的ID都不会改变

2、从GameObject.CreatePrimitive()或Object.Instantiate()中创建或克隆的每个名字相同的GameObject对象都有唯一的ID,即虽然名字相同,但ID却是不同的。在游戏开发中有时需要生成大量的物体,而每个物体的生命周期需要单独记录,此时这两种方法很有用

Object类静态方法

在Object类中,涉及的静态方法有Destroy方法、DontDestroyOnLoad方法、FindObjectOfType方法、FindObjectsOfType方法和Instantiate方法。

Destroy方法:销毁对象

基本语法

1public static void Destroy(Object obj);
2public static void Destroy(Object obj);
其中参数obj为待销毁的对象,参数t为销毁延迟时间,默认为0

功能说明
此方法的功能是在执行完本方法t秒后销毁obj对象。方法Destroy可以销毁一个GameObject对象,也可以销毁GameObject对象中的某个组件如Rigidbody、脚本等,但是除非销毁整个GameObject对象,否则不可单独销毁Transform组件,当销毁整个GameObject时GameObject的所有组件及子类将一并被消耗

注意DestroyImmediate可以立即销毁某个Object对象及其在Assets中的资源文件,编程中谨慎使用,建议使用Destroy方法代替

DontDestroyOnLoad方法:新场景中保留对象

基本语法

public static void DontDestroyOnLoad(Object target);
其中参数target为被保留的对象

功能说明:
此方法用于设置参数target指向的对象是否在新Scene中被保留下来。
1、如果target为根物体的GameObject对象或GameObject对象中的某个组件,则物体自身及其子物体都会被导入到新Scene中,当然它们也可以在新Scene中进行编辑操作。
2、如果target不为根物体的GameObject对象或GameObject对象中的某个组件,则此方法将失效,即target及其子物体不会被导入到Scene中。
若想把场景中某个子物体导入到新Scene中,可以用Transform.DetachChildren方法进行父子层次关系分离,然后再导入新Scene中

FindObjectsOfType方法:获取对象

基本语法

1public static T[] FindObjectsOfType<T>() where T:Object;
2public static Object[] FindObjectsOfType(Type type);
其中参数type为要获取的对象类型,可以是GameObject类型或Component类型。

功能说明:
此方法用于获取工程中所有符合参数类型的对象。不过此方法需要遍历整个工程,执行速度较慢,不适宜在每帧中调用。对于遍历的结果可以通过对象的name或InstanceID等属性进行有选择地处理。

FindObjectOfType方法与此方法功能相近,用于获取工程中符合type类型的第一个对象,多用于检测工程中是否含有某种类型的对象

Instantiate方法:实例化对象

基本语法

1public static Object Instantiate(Object original);
2public static Object Instantiate(Object original , Vector3 position , Quaternion rotation);
其中参数original为实例化对象的类型,参数position为实例化对象的位置,参数rotation为实例化对象的旋转角度

功能说明
此方法用于实例化一个Object对象。Instantiate可以实例化Object、object的子类已经Object子类的子类等。
当实例化一个对象时,会同时实例化根对象的所有子类

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/721159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始写 Docker(四)---使用 pivotRoot 切换 rootfs 实现文件系统隔离

本文为从零开始写 Docker 系列第四篇&#xff0c;在mydocker run 基础上使用 pivotRoot 系统调用切换 rootfs 实现容器和宿主机之间的文件系统隔离。 完整代码见&#xff1a;https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实现有一个大致认识&…

javascript作用域编译浅析

作用域思维导图 1&#xff1a;编译原理 分词/词法分析 如果词法单元生成器在判断a是一个独立的词法单元还是其他词法单元的一部分时&#xff0c;调用的是有状态的解析规则&#xff0c;那么这个过程就被称为词法分析。 解析/语法分析 由词法单元流转换成一个由元素逐级嵌套所组…

期货开户交易软件如何下单?

一、手机和电脑使用的交易软件 目前期货市场常用的软件有文华、博弈、快期、易盛、同花顺等&#xff0c;这5款电脑软件对应的手机端是文华随身行、博弈手机版、快期小Q、易盛易星、同花顺期货通&#xff0c;这些常用软件大部分期货公司都是支持的。 二、交易软件如何下单 软…

C打印内存16进制

下面是一段C代码打印16进制 void print_hex(const char *msg, void *addr, int len) {uint8_t *p (uint8_t *)addr;printf("%s ,stat:%0x8, len:%d\n", msg, addr, len);for (int i 0; i < len / 16; i) {printf("0x%08x: ", p i * 16);for (int j …

【音视频开发好书推荐】《RTC程序设计:实时音视频权威指南》

1、WebRTC概述 WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个由Google发起的实时音视频通讯C开源库&#xff0c;其提供了音视频采集、编码、网络传输&#xff0c;解码显示等一整套音视频解决方案&#xff0c;我们可以通过该开源库快速地构建出一个音视频通…

如何保证招投标评标(系统)的公正性和透明度

在招投标过程中&#xff0c;评标的公正性和透明度是至关重要的&#xff0c;因为它涉及到公共利益和社会公正。然而&#xff0c;实际上&#xff0c;招投标过程中经常存在非法和不道德的行为&#xff0c;如暗箱操作、贿赂行为等&#xff0c;这些行为都会对招投标的公正性和透明度…

【小黑嵌入式系统第十七课】结课总结(一)——硬件部分(系统总线处理器外设通信)

上一课&#xff1a; 【小黑嵌入式系统第十六课】PSoC 5LP第三个实验——μC/OS-III 综合实验 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff1a;人工智能 文章目录 一、基础知识…

2024新版SonarQube+JenKins+Github联动代码扫描(1)-JenKins安装与配置

文章目录 前言一、官网下载二、访问ip:port三、安装推荐插件-自动下载四、创建用户名密码五、安装SonarQube插件六、配置全局工具总结 前言 Sonar是一个半开源的静态代码扫描工具&#xff0c;试用过一次觉得功能还算可以&#xff0c;所以记录一下SonarQube扫描的用法以及在中大…

IO接口 2月5日学习笔记

1.fgetc 用于从文件中读取一个字符&#xff0c;fgetc 函数每次调用将会返回当前文件指针所指向的字符&#xff0c;并将文件指针指向下一个字符。 int fgetc(FILE *stream); 功能: 从流中读取下一个字符 参数: stream:文件流指针 返回值: …

5分钟速成渐变色css

色彩的分支——渐变色定义&#xff1a;按照一定规律做阶段性变化的色彩&#xff08;抽象&#xff01;&#xff01;&#xff01;&#xff09; 我们可以将图片分为两块 以中心线为参考&#xff0c;再来看渐变色的定义&#xff1a;按照一定规律做阶段性变化的色彩 既然是按一定的…

MWC 2024 | 以AI赋能全新体验 紫光展锐助推端侧AI技术创新

近日&#xff0c;紫光展锐在2024世界移动通信大会&#xff08;MWC 2024&#xff09;上展示了在AI领域的最新成果&#xff0c;赋能广泛终端品类打造突破创新的应用体验。 5G的规模化发展释放了AI的生命力&#xff0c;5G 网络和边缘分布式计算结合在一起彼此增强&#xff0c;为行…

使用Android Native Hook技术解决VLC播放器闪退的问题

文章目录 1.概述2.问题描述3.问题分析4.问题解决5.总结 1.概述 在做公司的一个TOB的需求时&#xff0c;发现调起Unity提供的3D播放器播放网络在线视频时闪退了&#xff0c;然后就拉着相关部门的人一起分析问题&#xff0c;最后定位到是VLC里面用到的系统日志打印函数在部分的系…

贪心 Leetcode 135 分发糖果

分发糖果 Leetcode 135 学习记录自代码随想录 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求&#xff0c;给这些孩子分发糖果&#xff1a; 每个孩子至少分配到 1 个糖果。 相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个…

动态代理IP的并发处理技巧

目录 前言 一、什么是动态代理IP&#xff1f; 二、动态代理IP的并发处理技巧 1. 获取代理IP 2. 动态生成代理对象 3. 并发处理 总结 前言 在进行网络爬虫开发时&#xff0c;经常会遇到限制IP访问频率的情况。为了突破这个限制&#xff0c;我们可以通过使用代理IP来实现…

华为配置基于VLAN限速示例

华为配置基于VLAN限速示例 组网图形 图1 流量监管配置组网图 表1 Switch为上行流量提供的QoS保障 流量类型 CIR(kbps) PIR(kbps) DSCP优先级 语音 2000 10000 46 视频 4000 10000 30 数据 4000 10000 14 ^^^ 流分类简介配置注意事项组网需求配置思路操作步…

C#与欧姆龙PLC实现CIP通讯

参考文档&#xff1a; 欧姆龙PLC使用-CSDN博客 CIP通讯介绍&#xff08;欧姆龙PLC&#xff09;-CSDN博客 使用NuGet添加引用&#xff1a;CIPCompolet 基础参考我的CIP协议介绍&#xff0c;默认TCP端口为&#xff1a;44818 类NXCompolet 类的功能可以在安装PLC开发软件后帮…

vue svelte solid 虚拟滚动性能对比

前言 由于svelte solid 两大无虚拟DOM框架&#xff0c;由于其性能好&#xff0c;在前端越来越有影响力。 因此本次想要验证&#xff0c;这三个框架关于实现表格虚拟滚动的性能。 比较版本 vue3.4.21svelte4.2.12solid-js1.8.15 比较代码 这里使用了我的 stk-table-vue(np…

java框架八股

spring框架中单例bean是线程安全的吗 不是线程安全的&#xff0c;spring框架并没有对单例bean进行任何多线程的封装处理。通常在项目中使用的spring bean都是不可变的状态。如果bean有多种状态的话&#xff0c;就需要自行保证线程安全。 什么是AOP&#xff1f; aop是面向切面编…

web坦克大战小游戏

H5小游戏源码、JS开发网页小游戏开源源码大合集。无需运行环境,解压后浏览器直接打开。有需要的订阅后,私信本人,发源码,含60+小游戏源码。如五子棋、象棋、植物大战僵尸、贪吃蛇、飞机大战、坦克大战、开心消消乐、扑鱼达人、扫雷、打地鼠、斗地主等等。 <!DOCTYPE htm…

【图论】Dijkstra 算法求最短路 - 构建邻接矩阵(带权无向图)

文章目录 例题&#xff1a;到达目的地的方案数题目描述代码与解题思路构建带权无向图的邻接矩阵 例题&#xff1a;到达目的地的方案数 题目链接&#xff1a;1976. 到达目的地的方案数 题目描述 代码与解题思路 func countPaths(n int, roads [][]int) int {g : make([][]int…