GameObject.Find()
优点:

使用简单方便
不会因为重名而报错,同时查找的是自上而下的第一个物体
缺点

不能查找被隐藏的物体,否则出现“空引用异常”,这是很多新人在查找出现空引用bug的原因。
全局查找(遍历查找),查找效率低,很消耗性能。
代码演示:

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

public class GameObjectFind : MonoBehaviour {

private GameObject thing;

void Start () {

thing = GameObject.Find("C4");
thing.name = "thing";

}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Transform.Find(),通过Transform组件查找子物体。
用这个方法查找物体时,根节点一定要处于“显示”状态,不能被隐藏。
用它查找孙物体及孙孙物体,一定要使用“绝对路径”,否则出现“空引用异常”。
代码演示:

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

public class TransformFind : MonoBehaviour {

private Transform m_Transform;
private GameObject one;
private GameObject two;

void Start () {

m_Transform = gameObject.GetComponent<Transform>();
one = m_Transform.Find("D2").gameObject;
two = m_Transform.Find("D2/D3").gameObject;

Debug.Log(one.name);
Debug.Log(two.name);

}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
GameObject.FindGameObjectWithTag()和GameObject.FindGameObjectsWithTag(),通过Tag标签查找物体。
GameObject.FindGameObjectsWithTag():通过Tag标签查找到一组物体,返回一个数组。
GameObject.FindGameObjectWithTag():查找到这类tag标签,自上而下第一个物体。

代码演示:

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

public class TagFind : MonoBehaviour {

private GameObject thing;
private GameObject[] things;
void Start () {

things = GameObject.FindGameObjectsWithTag("Player");
thing = GameObject.FindGameObjectWithTag("Player");

Debug.Log(things.Length);
Debug.Log(thing.name);

}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
FindObjectsOfType()
FindObjectsOfTypeAll():返回指定类型的对象列表。

代码演示:

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

public class FindObjectOfType : MonoBehaviour {

private GameObject[] things;
private GameObject thing;

void Start (http://www.my516.com) {

things = FindObjectsOfType<GameObject>();
thing = FindObjectOfType<GameObject>();

Debug.Log("第一个" + thing.name);
for(int i = 0; i < things.Length; i++)
{
Debug.Log(things[i].name);
}
}
}
---------------------

Unity查找物体的四大主流方法及区别的更多相关文章

  1. Unity查找物体的子物体、孙物体

    Unity查找物体下的所有物体 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分 ...

  2. Unity查找子物体的方式-怎么查找GameObject

    Unity动态查找物体 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创 ...

  3. Opencv距离变换distanceTransform应用——细化字符轮廓&&查找物体质心

    Opencv中distanceTransform方法用于计算图像中每一个非零点距离离自己最近的零点的距离,distanceTransform的第二个Mat矩阵参数dst保存了每一个点与最近的零点的距离 ...

  4. Python 四大主流 Web 编程框架

    Python 四大主流 Web 编程框架 目前Python的网络编程框架已经多达几十个,逐个学习它们显然不现实.但这些框架在系统架构和运行环境中有很多共通之处,本文带领读者学习基于Python网络框架 ...

  5. Unity 实现物体破碎效果(转)

    感谢网友分享,原文地址(How to Make an Object Shatter Into Smaller Fragments in Unity),中文翻译地址(Unity实现物体破碎效果) In ...

  6. opencv2对读书笔记——使用均值漂移算法查找物体

    一些小概念 1.反投影直方图的结果是一个概率映射,体现了已知图像内容出如今图像中特定位置的概率. 2.概率映射能够找到最初的位置,从最初的位置開始而且迭代移动,便能够找到精确的位置,这就是均值漂移算法 ...

  7. Unity 查找泛型List中的相同与不同数据

    Unity查找泛型集合中的不同数据 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...

  8. Unity中让Update中的方法执行一次

    Unity中让Update中的方法执行一次 Unity中,很多时候,代码需要放在Update中时刻监测状态,一旦状态符合,又只需要代码执行一次:其实可以通过设置控制量的方式,让代码只执行一次:方法:设 ...

  9. View inflate方法和LayoutInflater inflate方法的区别详解

    原创文章,转载请注明出处:http://www.cnblogs.com/baipengzhan/p/6257510.html 我们在Android开发中,对于将布局填充成View对象,最常用的两种办法 ...

随机推荐

  1. [Selenium] WebDriver 操作 HTML5 中的 drag/drop

    以 jQuery UI 官方网站元素测试,地址:http://jqueryui.com/draggable/ 示例: package com.learningselenium.html5; impor ...

  2. 理解iOS Event Handling

    写在前面 最近的一个iOS App项目中遇到了这么问题:通过App访问服务器的大多数资源不需要登录,但是访问某些资源是需要用户提供验证的,一般来说,通常App的做法(譬如美团App)将这些资源放在“我 ...

  3. 哈希表的C实现(二)

    上次大致分析了一下哈希表的链地址法的实现,今天来分析一下另一种解决哈希冲突的做法,即为每个Hash值,建立一个Hash桶(Bucket),桶的容量是固定的,也就是只能处理固定次数的冲突,如104857 ...

  4. 一个不当使用fclose引发的异常

    最近服务器上一个后台传输文件的服务,经常会报出异常来,只能强行终止并重启. 昨天刚好有空,现场抓了一下dump,再把程序扔到IDA里看了一下,很快就找出原因了,原来是调用fclose时出错的. 使用C ...

  5. 1. jsp中<base target='' />标签用法

    用于页面跳转后,页面最后跳转到哪个iframe.例子如下: index.jsp :首页 <head> <base href="<%=basePath %>&qu ...

  6. servlet 3 文件上传

    1.up.jsp <%@ page language="java" pageEncoding="utf-8"%> <form action=& ...

  7. JAVA基础--面向对象08

    一.final关键字 有的时候不想别人重写我的方法,使用final关键字修饰该方法,final:最后的,最终的,可以修饰类.修饰函数.修饰变量,修饰类:该类不能被继承:直接写在class关键字前面 修 ...

  8. rbenv更新ruby后rails命令无效的解决方案

    创建: 2017/11/02 更新: 2018/02/02 增加rbenv使用方法的链接     rbenv的使用: http://www.cnblogs.com/lancgg/p/8281739.h ...

  9. POJ 1384【完全背包】

    题意: 已知储蓄罐满时的质量f以及空时质量e, 有n种硬币,每种硬币的价值为p,质量为w, 求该储蓄罐中的最少有多少钱? 思路: 完全背包思想,问题是在一个重量下的最小价值 那么只要变一下符号就好了? ...

  10. 如何才能优雅地书写JS代码

    第一:关于匿名函数的使用 要避免全局变量泛滥, 可以考虑使用匿名函数, 把不需要在外部访问的变量或者函数限制在一个比较小的范围内. 例如以下代码: <script> function fu ...