Unity API详解——GameObject类

本文详细介绍了Unity中的GameObject类,包括其activeSelf属性的用法,与activeInHierarchy的区别,以及GameObject和Component的关系,特别是GetComponent方法的使用。通过实例演示了如何判断对象活动状态和层级影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GameObject类是Unity场景中所有实体的基类。一个GameObject对象通常由多个组件(component)组成,且至少含有一个Transform组件。介绍GameObject类的一些实例属性、构造方法、实例方法和静态方法,并在最后对GameObject和Component这两个类之间的关系及其设计的GetComponent相关方法的使用区别进行注解。

一、GameObject类实例属性

在GameObject类中,设计的实例属性有activeSelf和activeInHierarchy。由于这两个属性功能相似,因此将属性activeInHierarchy作为activeSelf属性的提示内容介绍,下面主要介绍activeSelf属性。

1、aspect属性:设置摄像机视口比例

(1)基本语法

public bool activeSelf { get; }

(2)功能说明

此属性用来返回GameObject对象的Active标识状态

GameObject-001

cube1、cube2和cube3的Active状态分别为true、false和true。由于cube2的Actice为false,作为其子类cube3虽然没有被激活,但其activeSelf的返回值依然为true。

notes:注意此属性与属性activeInHierarchy的区别。activeInHierarchy属性的功能是返回GameObject实例在程序运行时的激活状态,它只有当GameObject实例的状态被激活时才会返回true。而且它会受其父类激活状态的影响,如果其父类至最顶层的对象中有一个对象未被激活,activeInHierarchy就会返回false。

(3)代码实现
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ActiveSelf_demo : MonoBehaviour
{
    public GameObject cube1, cube2, cube3;
    void Start()
    {
        //对Cube2设置为false,其他设置为true
        cube1.SetActive(true);
        cube2.SetActive(false);
        cube3.SetActive(true);

        Debug.Log("activeSelf:");
        //尽管cube2被设置为fasle,但其子类cube3的activeSelf返回值仍然为true
        Debug.Log("cube1.activeSelf:" + cube1.activeSelf);
        Debug.Log("cube2.activeSelf:" + cube2.activeSelf);
        Debug.Log("cube3.activeSelf:" + cube3.activeSelf);

        Debug.Log("-----------------------------------------------------------");
        Debug.Log("\nactiveInHierarchy:");
        //cube2和cube3的activeInHierarchy返回值都为false
        Debug.Log("cube1.activeInHierarchy:" + cube1.activeInHierarchy);
        Debug.Log("cube2.activeInHierarchy:" + cube2.activeInHierarchy);
        Debug.Log("cube3.activeInHierarchy:" + cube3.activeInHierarchy);
    }
}


首先声明了3个变量cube1,cube2和cube3分别指向实例工程中的3个GameObject对象cube1,cube2和cube3,这3个对象的层级关系如图所示。

然后分别设置cube1、cube2和cube3的Active为true、false和true。

最后分别打印出这3个对象的activeSelf属性值和activeIn Hierarchy属性值,结果如下。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客范儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值