GameObject类API学习

GameObject类

GameObject类是Unity场景中所有实体的基类。一个GameObject对象通常由多个组件组成,且至少含有一个Transform组件。

1、GameObject类实例属性

在GameObject类中,实例属性有activeSelf和activeInHierarchy。

activeSelf属性:GameObject的Active标识
基本语法 public bool activeSelf { get; }
功能说明:此属性与属性activeInHierarchy的区别。activeInHierarchy属性的功能是返回GameObject实例在程序运行时的激活状态,它只有当GameObject实例的状态被激活时才会返回ture。而且它会受其父类对象激活状态的影响,如果其父类至最顶层的对象中有一个对象未被激活。

2、GameObject构造方法

基本语法:

1public GameObject()
2public GameObject(string name)
其中参数name为构造GameObject对象的名字
3public GameObject(string name , params Type[] components)
其中参数name为构造GameObject对象的名字,components为构造对象要添加的组件类型集合,多个组件之间用逗号隔开

功能说明 : 此构造方法用来创建一个GameObject对象

       //使用构造函数GameObject(name : String)GameObject g1 = new GameObject("G1");g1.AddComponent<Rigidbody>();//使用构造函数GameObject()GameObject g2 = new GameObject();g2.name = "G2";g2.AddComponent<FixedJoint>();//使用构造函数GameObject(name : String , params components : Type[])GameObject g3 = new GameObject("G3", typeof(MeshRenderer), typeof(Rigidbody), typeof(SpringJoint));Debug.Log("g1 name:" + g1.name + "\nPosition" + g1.transform.position);Debug.Log("g2 name:" + g2.name + "\nPosition" + g2.transform.position);Debug.Log("g3 name:" + g3.name + "\nPosition" + g3.transform.position);

3、GameObject类实例方法

在GameObject类中,涉及的实例方法有GetComponent、GetComponentInChildren、GetComponents、GetComponentsInChildren、SendMessage、BroadcastMessage 和 SendMessageUpwards。

3.1、GetComponent方法:获取组件

基本语法:

1public T GetComponent<T>() where T:Component;
2public Component GetComponent(string type);
其中参数type为组件名
3public Component GetComponent(Type type);
其中参数type为组件类型

功能说明:此方法用于获取GameObject中第一个符合Type类型的Component。

3.2、SendMessage方法:发送消息

基本语法

1public void SendMessage(string methodName);
2public void SendMessage(string methodName, object value);
3public void SendMessage(string methodName, SendMessageOptions options)
4public void SendMessage(string methodName, object value , SendMessageOptions options)

四个重载方法涉及的参数有:
1、methodName为接受信息的方法名字
2、value为信息的内容
3、options为信息接收的方法
4、默认为SendMessageOptions.RequireReceiver

功能说明:此方法的功能是向GameObject自身发送信息,对其作用范围说明
1、和自身同级的物体不会收到消息
2、SendMessageOptions有两个可选方式:SendMessageOptions.RequireReceiver和SendMessageOptions.DontRequireReceiver。
前者要求信息的接受方必须有接受信息的方法,否则程序会报错,后者则无此要求

BroadcastMessage方法的功能是向自身及其所有子类发送信息。和自身同级的物体不会收到信息。
SendMessageUpwards方法的功能是向GameObject自身及其所有父类发送消息。和自身同级的物体不会收到信息。

private void Start(){//向子类及自己发送消息gameObject.BroadcastMessage("GetParentMessage", gameObject.name + ": use BroadcastMessage send!");//向自己发送信息gameObject.SendMessage("GetSelfMessage", gameObject.name + ": use SendMessage send !");//向父类及自己发送信息gameObject.SendMessageUpwards("GetChildrenMessage", gameObject.name + "ues SendMessageUpwards send !");}//一个接受父类发送信息的方法private void GetParentMessage(string str){Debug.Log(gameObject.name + "收到父类发送的信息:" + str);}//一个接受自身发送信息的方法private void GetSelfMessage(string str){Debug.Log(gameObject.name + "收到自身发送的消息:" + str);}//一个接受子类发送信息的方法private void GetChildrenMessage(string str){Debug.Log(gameObject.name + "收到子类发送的消息:" + str);}

4、GameObject类静态方法

在GameObject类中,涉及的静态方法主要有CreatePrimitive。在使用该方法创建GameObject对象时,往往会涉及添加组件(AddComponent)和查找对象(Find)。

4.1、 CreatePrimitive方法:创建GameObject对象

基本语法

public static GameObject CreatePrimitive(PrimitiveType type);
其中参数type为PrimitiveType的类型值

功能说明 此方法的功能是创建一个系统自带的GameObject对象

关于GameObject类和Component类的使用注解
GameObject和Component是Unity中很常用而且十分重要的两个类,二者的实例属性和实例方法相似,只是在使用方法上稍有区别。
1、通过一个GameObject对象由多个Component组成,而且一个GameObject对象至少有一个Transform组件。GameObject用来管理工程中的各个物体,而Component用来扩展这些物体自身的功能。
2、GameObject类和Component类的属性名称和方法名称基本相同,各个属性和方法的用法也很相近,但它们任有一些差别。
若要获取当前脚本所在在GameObject对象中的某个组件,直接使用GetComponent方法即可。若要获取非当前脚本所在GameObject对象中的某个组件,则需要有GameObject作为前置引用。

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

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

相关文章

Spring与SpringBoot入门

Spring入门 要使用Spring最起码需要引入两个依赖: <!-- Spring Core&#xff08;核心&#xff09; --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.3.20</version>…

Linux内核定时器ioctrl实现对Led灯的控制

一. 简介 前面文章学习了 Linux内核提供的定时器来实现 Led灯的定时亮灭。文章地址如下: Linux内核定时器实现Led灯的定时亮灭说明二-CSDN博客 本文学习通过 应用程序调用 驱动,从而实现对 Led灯的控制。具体实现 ioctrl函数的驱动代码,从而控制 Led灯。 二. Linux内核定…

Unity3D 光照计算方向与法线贴图详解

前言 在Unity3D中&#xff0c;光照计算方向与法线贴图是实现高质量光照效果的重要技术之一。本文将详细介绍光照计算方向与法线贴图的原理和实现方法&#xff0c;并给出相应的代码示例。 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;希望大家可以点击进来一起交流…

密码学系列(四)——对称密码2

一、RC4 RC4&#xff08;Rivest Cipher 4&#xff09;是一种对称流密码算法&#xff0c;由Ron Rivest于1987年设计。它以其简单性和高速性而闻名&#xff0c;并广泛应用于网络通信和安全协议中。下面是对RC4的详细介绍&#xff1a; 密钥长度&#xff1a; RC4的密钥长度可变&am…

Git,GitHub与GitLab分别是什么?有什么关系和区别?

Git 定义&#xff1a;Git 是一个分布式版本控制系统&#xff0c;用于跟踪文件的变化&#xff0c;并协助多人协作开发软件项目。作用&#xff1a;Git 可以在本地存储完整的项目历史记录&#xff0c;并允许开发者在不同的分支上进行独立的开发&#xff0c;最后将它们合并到主干分…

GPT 的基础 - T(Transformer)

我们知道GPT的含义是&#xff1a; Generative - 生成下一个词 Pre-trained - 文本预训练 Transformer - 基于Transformer架构 我们看到Transformer模型是GPT的基础&#xff0c;这篇博客梳理了一下Transformer的知识点。 BERT: 用于语言理解。&#xff08;Transformer的Encoder…

九州金榜|父亲在教育中的作用及重要性

随着社会进步&#xff0c;对比以前教育&#xff0c;现在父亲在教育中的作用越来越明显&#xff0c;孩子的教育离不开父亲&#xff0c;父亲在孩子教育中有什么作用&#xff1f;重要性又是什么呢&#xff1f;下面九州金榜家庭教育就带大家一起分析一下作为父亲&#xff0c;在孩子…

VUE3搭载到服务器

1.搭建服务器 使用 Windows 自带的 IIS 作为服务器。 步骤如下&#xff1a;https://blog.csdn.net/qq_62464995/article/details/130140673 同时&#xff0c;上面的步骤中&#xff0c;还使用了 cpolar 将 IIS 本地网址映射到公共网址。 注&#xff1a; cpolar客户端&#xf…

python模块百科_为高效而生_itertools【三】

python模块百科_为高效而生_itertools【三】 一、itertools --- 为高效而生二、无穷迭代器三、根据最短输入序列长度停止的迭代器3.6 groupby()3.7 islice()3.8 starmap()3.9 takewhile()3.10 tee() 一、itertools — 为高效而生 itertools — 为高效而生。itertools模块实现一…

Ant for Blazor做单个表的增删查改

Ant for Blazor做单个表的增删查改 2024年02月27日花了一天时间弄出来了&#xff0c;基本弄好了&#xff0c;vs2022blazor servernet8,引用的AntDesign版本是0.17.4 代码里的model和repository是用自己牛腩代码生成器生成的东西&#xff0c;sqlsugar的&#xff0c;记得在prog…

括号生成(力扣题目22)

题目描述&#xff1a; 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;["((()))","(()())","(())()&q…

Modern C++ std::any的实现原理

1. 前言 std::any 是 C17 中引入的一个新特性&#xff0c;它是一个类型安全的容器&#xff0c;可以在其中存储任何类型(但此类型必须可拷贝构造)的值&#xff0c;包括基本类型、自定义类型、指针等。相比于void* 指针&#xff0c;std::any 更为类型安全&#xff0c;可以避免由…

NC65 rest接口 开发 NC65接口开发

一、在对应模块META-INF下编写 xxx.rest 文件,也要放在Home里对应的目录下。 二、开发接口&#xff0c;继承extends AbstractUAPRestResource&#xff0c;&#xff08;有的项目会继承别的方法如&#xff1a;AbstractNCCRestResource&#xff0c;MTFRestResource&#xff1b;有…

网络安全面试题

1. Http 状态码&#xff0c;Http2 是什么 答案&#xff1a; 200 欢迎回来&#xff0c;主人 &#xff08;正常&#xff1b;请求已完成。&#xff09; 301 人家搬家了 &#xff08;已移动 — 请求的数据具有新的位置且更改是永久的。&#xff09; 307 不是这里&#xff0c;换个…

使用 kubeadm 部署k8s集群

一、所有节点系统初始化 1、常规初始化 2、内核版本升级以及内核限制文件参数修改 还可以考虑将旧版本的内核卸载 二、准备nginx负载均衡器和keepalived nginx四层代理&#xff1a; keepalived配置&#xff1a; nginx检测脚本&#xff1a; 三、所有节点部署docker&#xff0c…

SQL函数学习记录

聚合函数 函数是编程语言的基础之一&#xff0c;在对数字的运算中&#xff0c;我们用的最多的就是聚合函数&#xff0c;本篇接下来就详细阐述下SQL中聚合函数的运用。 什么是聚合函数&#xff08;aggregate function&#xff09;&#xff1f; 聚合函数指的是对一组值执行计算…

2023秋季飞书未来无限大会--随笔

这个时代的飞书 数字时代 工作协同平台 AI时代 帮助企业和个人用好AI 企业如何引用大模型能力&#xff1f; 智慧体— 接近人&#xff0c;有进步空间智能伙伴 用时代的科技打造爱不释手的好产品 移动互联网 – 改变信息分发方式 大模型 –自然的人机交互方式 业务协同 …

如何使用便签快速分类工作待办事项

在日常工作和生活中&#xff0c;我们经常需要处理各种各样的待办事项。而有效地分类这些任务&#xff0c;可以帮助我们更好地管理时间和提高工作效率。使用便签是一种简单而实用的方法&#xff0c;下面将介绍如何利用好用便签来快速分类工作待办事项。 首先&#xff0c;你可以…

【数据结构和算法初阶(C语言)】链表-单链表(手撕详讲单链表增删查改)

目录 1.前言&#xff1a;顺序表回顾&#xff1a; 1.1顺序表的优缺点 2.主角----链表 2.1链表的概念 2.2定义一个单链表的具体实现代码方式 3.单链表对数据的管理----增删查改 3.1单链表的创建 3.2单链表的遍历实现 3.2.1利用遍历实现一个打印我们链表内容的函数的函数…

【前端素材】推荐优质后台管理系统Salreo平台模板(附源码)

一、需求分析 当我们从多个层次来详细分析后台管理系统时&#xff0c;可以将其功能和定义进一步细分&#xff0c;以便更好地理解其在不同方面的作用和实际运作。 1. 结构层次 在结构层次上&#xff0c;后台管理系统可以分为以下几个部分&#xff1a; a. 辅助功能模块&#…