Unity API详解——Object类

news/2024/4/25 0:52:16/文章来源:https://blog.csdn.net/Prototype___/article/details/130283661

Object类是Unity中所有对象的基类,例如GameObject、Component、Material、Shader、Texture、Mesh、Font等都是Object的子类。本博客介绍Object类的一些实例方法和静态方法。

一、Object类实例方法

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

1、基本语法

public int GetInstanceID();

2、功能说明

此方法用来返回Object对象的实例化ID
每个Object对象的实例、Object子类的实例如GameObject、Component等以及Object子类的子类的实例如Transform、Rigidbody等工程中都有唯一的ID(intl类型)。并且从程序开始运行到结束,除非对象被销毁,否则每个实例对应的ID都不会改变。
从GameObject.CReatePrimitive()或Object.Instantiate()中创建或克隆的每个名字相同的GameObject对象都有唯一的ID,即虽然名字相同,但ID却是不同的。在游戏开发中有时需要克隆大量的物体,而每个物体的声明周期需要单独记录,此时这两种方法很有用

3、代码实现

using System;
using System.Collections;
using System.Collections.Generic;
using System.Numerics;
using UnityEngine;public class GetInstanceID_test : MonoBehaviour
{void Start(){Debug.Log("gameObject的ID:" + gameObject.GetInstanceID());Debug.Log("tranform的ID:" + transform.GetInstanceID());GameObject g1, g2;//从GameObject创建一个对象g1 = GameObject.CreatePrimitive(PrimitiveType.Cube);//克隆对象g2 = Instantiate(g1, UnityEngine.Vector3.zero, UnityEngine.Quaternion.identity) as GameObject;Debug.Log("GameObject g1的ID:" + g1.GetInstanceID());Debug.Log("Tranform g1的ID:" + g1.transform.GetInstanceID());Debug.Log("GameObject g2的ID:" + g2.GetInstanceID());Debug.Log("tranform g2的ID:" + g2.transform.GetInstanceID());}}

在这里插入图片描述

二、Object类静态方法

在Object类中,设计的静态方法有Destroy方法、DontDestroyOnLoad方法、FindObjectOfType方法、FindObjectsOfType方法和Instantiate方法,FindObjectOfType方法和FindObjectsOfType方法功能相似

1、基本语法

(1)public static void Destroy(Object obj);
(2)public static void Destroy(Object obj,float t);

其中参数obj为待销毁的对象,参数t为销毁延迟时间,默认为0

2、功能说明

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

notes:与此方法功能相似的方法有DestroyIMMediate和DestroyObject。其中方法DestroyImmediate可以立即销毁某个Object对象及其在Assets中的资源文件,编程中慎用,推荐使用Destroy方法代替。

3、代码实现

using System;
using System.Collections;
using UnityEngine;public class Destroy_test : MonoBehaviour
{public GameObject GO,Cube;void Start(){//5秒后销毁GO对象的Rigidbody组件Destroy(GO.rigidbody,5.0f);//7秒后销毁GO对象的Destroy_ts脚本Destroy(GO.GetCompoent<Destroy_ts>(),7.0f);//10秒后销毁Cube对象,同时Cube对象的所有组件及其子类将一并销毁Destroy(Cube,10.0f);}}

在这段代码中,首先声明了两个变量GO和Cube,然后再Start方法中一次销毁了GO独享的RIgidbody组件、GO对象的脚本组件和Cube对象。运行程序可以发小,销毁对象的某个组件时,对象自身不会被销毁,但销毁某个对象时,其所包含的组件将一并销毁。

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

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

相关文章

8. 优先队列

8. 优先队列 普通的队列是一种先进先出的数据结构&#xff0c;元素在队列尾追加&#xff0c;而从队列头删除。在某些情况下&#xff0c;我们可能需要找出队列中的最大值或者最小值&#xff0c;例如使用一个队列保存计算机的任务&#xff0c;一般情况下计算机的任务都是有优先级…

ROS1学习笔记:常用可视化工具的使用(ubuntu20.04)

参考B站古月居ROS入门21讲&#xff1a;常用可视化工具的实现 基于VMware Ubuntu 20.04 Noetic版本的环境 文章目录 一、日志输出工具&#xff1a;rqt_console二、绘制数据曲线&#xff1a;rqt_plot三、 图像渲染工具&#xff1a;rqt_image_view四、图形界面总接口&#xff1a;r…

kong(4):限流配置

Kong 提供了 Rate Limiting 插件&#xff0c;实现对请求的限流功能&#xff0c;避免过大的请求量过大&#xff0c;将后端服务打挂。 Rate Limiting 支持秒/分/小时/日/月/年多种时间维度的限流&#xff0c;并且可以组合使用。例如说&#xff1a;限制每秒最 多 100 次请求&…

初识Android内存优化

一、简介 Android 内存优化是指优化 Android 应用程序的内存使用&#xff0c;以减少可用内存的消耗&#xff0c;提高应用程序的性能和可靠性。Android 内存优化可以通过减少内存使用量&#xff0c;减少对资源的消耗&#xff0c;以及提高内存利用率来实现。 安卓系统对每个应用…

什么才是好CDN

选择一种领先于网络和移动技术不断进步以及不断演变的威胁格局的CDN&#xff0c;将使您能够始终如一地为客户提供尽可能好的在线体验&#xff0c;同时最大限度地降低运营复杂性和管理成本。 但问题来了&#xff1a;什么才是最好的CDN&#xff1f; 这个问题的唯一答案是&#x…

Tomcat概述以及部署与优化

一、Tomcat概述 1、Tomcat的概念 Tomcat是Java语言开发的&#xff0c;服务器是一个免费的开放源代码的Web应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试JSP程序的首选。一般来说&am…

Flutter开发日常练习-小猫咪杂货店(新增动画和跳转抖音)

之前的练习加了个详情页面,然后跳转第三方页面抖音用户详情页面 跳转详情页添加了Hero的动画,共享元素过度 一个 标准 hero 动画 使 hero 从一页飞至新页面&#xff0c;通常以不同大小到达不同的目的地。 设定好每个图片的id,通过id作为 Hero 组件的标识,id不能重,否则会报错&…

OSCP-Medjed(重置用户密码、mysql写webshell、可写文件替换提权)

目录 扫描 FTP WEB 提权 扫描 FTP 尝试登录到FTP服务器,该服务器位于端口30021 使用Filezilla,并能够浏览文件。那里有一些配置文件,但找不到任何值得注意的东西,不能写入目录。

算法--前缀和技巧 (蓝桥杯123-灵能传输)

文章目录 什么是前缀和用途什么时候用例题[蓝桥杯 2021 国 ABC] 123题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示 思路代码 灵能传输(蓝桥杯96%&#xff0c;洛谷ac)[蓝桥杯 2019 省 B] 灵能传输题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1…

【Leetcode -21.合并两个有序链表 -83.删除排序链表中的重复元素】

Leetcode Leetcode-21.合并两个有序链表Leetcode-83.删除排序链表中的重复元素 Leetcode-21.合并两个有序链表 题目&#xff1a;将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 […

【Web3.0大势所趋】我看到了互联网未来的模样

前言 Web3.0 是一个越来越受到关注的话题&#xff0c;它被认为将会带来天翻地覆的变化。本文我们一起来谈谈 Web3.0 的概念、特点和优势&#xff0c;并探讨它为什么如此重要和具有革命性的。 文章目录 前言Web3.0是什么Web3.0的技术Web3.0的优势总结 Web3.0是什么 Web3.0: 是下…

MATLAB实现图像滤波及噪声消除

图像增强是指根据特定的需要突出一幅图像中的某些信息&#xff0c;同时削弱或去除某些不需要的信息的处理方法。其主要目的是使处理后的图像对某种特定的应用来说&#xff0c;比原始图像更适用。因此&#xff0c;这类处理是为了某种应用目的而去改善图像质量的。处理的结果使图…

最短路径Floyd与区间DP

floyd算法是求最短路径的算法&#xff0c;算法复杂度为n(o^3),其优点在于能够一次求解所有点到其他点的最短路径&#xff0c;不需要其他运算&#xff0c;使用二维数组存储。其三层循环自外向内分别为&#xff1a;中间点&#xff0c;起始点和终点。状态方程为&#xff1a; num[…

JVM原理

JVM 什么是JVM&#xff1f; JVM是一种虚拟出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 JVM有自己完善的硬件架构&#xff0c;如处理器、堆栈、寄存器等&#xff0c;还具有相应的指令系统。Java语言最重要的特点就是跨平台运行。 使用J…

智慧管廊监控与报警管控一体化系统解决方案

摘要&#xff1a;智慧管廊监控与报警管控是一项综合性质较高的管控操作系统。在各项系统结构之间因为技术管理体系之间的差异&#xff0c;所评价的标准也有着不同的区分&#xff0c;导致各项标准之间难以实现相互之间的联通。这种形式下就需要实现环境与设备之间的监控管理、通…

(IPC)进程间通信的常用的两种方式——管道、共享内存

前言&#xff1a; 众所周知&#xff0c;不同的进程之间&#xff0c;在正常情况下&#xff0c;由于其拥有独立的PCB、上下文等原因&#xff0c;每个进程都是独立且互不干扰&#xff0c;这不仅保证了进程的安全&#xff0c;也降低了OS对于进程的管理成本。 但是通常情况下&…

01-yolo算法

要点&#xff1a; 归纳 YOLOv5 github 1 YOLO v1 1) 将一幅图像分成SxS个网格(grid cell)&#xff0c;如果某个object的中心 落在这个网格中&#xff0c;则这个网格就负责预测这个object。 2)每个网格要预测B个bounding box&#xff0c;每个bounding box 除了要预测位置之…

倾斜摄影三维模型、激光点云、正射影像、数字高程模型如何实现在线浏览?

四维轻云是成都远石技术团队基于浏览器打造的一款地理空间数据管理云平台&#xff0c;可实现TB级大规模倾斜摄影三维模型发布管理&#xff0c;并支持私有化部署和高阶功能定制化开发。 1、注册登录 首先在四维轻云官网点击「立即试用」按钮&#xff0c;进入登录页面并点击「注…

C# 特性(Attribute)

一、特性&#xff08;Attribute&#xff09;定义 特性&#xff08;Attribute&#xff09;是用于在运行时传递程序中各种元素&#xff08;比如类、方法、结构、枚举、组件等&#xff09;的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。 特性使用中括号…

2023年制造业产品经理考NPDP有什么用?

产品经理国际资格认证NPDP是新产品开发方面的认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会&#xff08;PDMA&#xff09;成立于1979年&#xff0c;是…