Unity GameObject.FindObjectOfType和GameObject.FindObjectsOfType的遍历

 GameObject.FindObjectOfType<>();

官方解释是返回Type类型第一个激活的加载的对象。

很多人会不理解什么是第一个激活加载的对象。

简单地说就是当你添加一个组件或者游戏物体时Unity就会在物体列表中添加。

物体列表是栈结构先进后出所以第一个激活的加载的对象就是你最后添加上去的组件或物体。

举个例子来说 :

在场景中一次添加Cube ,Cube(1),Cube(2),Cube(3),Cube(4)

如图所示:

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class API : MonoBehaviour {

public MeshRenderer mR;//用于接受查找到的物体组件
private void Start()
    {
//查找组件
mR = GameObject.FindObjectOfType<MeshRenderer>();



}




}

将脚本放到Cube中:(可以放在任意一个物体上)

运行:

获取的物体组件就是你最后添加的Cube(4)上的组件

那完整的物体列表是什么样的呢?

接下来咱们来看看:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class API : MonoBehaviour {

public MeshRenderer[] mRs;用于接受查找到的物体组件
private void Start()
    {
//查找全部物体激活状态下的物体组件
mRs = GameObject.FindObjectsOfType<MeshRenderer>();



}




}

运行:

 

这样就很明显物体列表数组中的元素正好是你添加顺序的倒序。

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值