【Unity3D游戏开发】GameObject.Find()、Transform.Find查找隐藏对象 (十)

GameObject.Find()、Transform.Find查找游戏对象

1.前置条件

Unity中常用到查找对象,非隐藏的、隐藏的,各种方法性能有高有低,使用又有各种条件限制。

在此对查找的性能和条件进行分析。开发时遇到的主要问题是查找隐藏对象。

没有完美的查找方法,只有最合适的查找方法

最后附带上测试代码

2.相关API

GameObject.Find 
Transform.Find 
GameObject.FindWithTag 
GameObject.FindGameObjectsWithTag 
Resources.FindObjectsOfTypeAll

2.1 GameObject.Find

通过名字或路径查找游戏对象。

<code class="language-C# hljs mathematica has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">GameObject.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">Find</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"GameObject"</span>);
GameObject.<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">Find</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"GameObject/ChildGameObject);</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li></ul>

使用规范: 
1.无法查找隐藏对象 
隐藏对象包括查找路径的任何一个父节点隐藏(active=false)

2.如果查找不在最上层,建议合理使用路径查找,路径查找是把双刃剑

优点1:解决查找中可能出现的重名问题。 
优点2:如果有完全的路径,减少查找范围,减少查找时间。

缺点: 路径或结构调整后,容易影响到程序中的查找,需要重新定位查找路径。

3.如果路径查找中的任何一个父节点active=false,这个对象都将查找不到。

4.使用方便但效率低下 
此查找相当于递归遍历查找,虽使用方便但效率堪忧,建议在Start()函数中查找对象并保存引用,切忌在Update()中动态查找。

2.2 Transform.Find

1.可以查找隐藏对象 
2.支持路径查找 
3.查找隐藏对象的前提是transform所在的根节点必须可见,即active=true

<code class="language-C# hljs avrasm has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">GameObject root = GameObject<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.Find</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"root"</span>)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>
root<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.SetActive</span>(false)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">; // 根节点为空</span>

// 总是查找失败
root<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.transform</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.Find</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"root/AnyChildObjectName"</span>)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li></ul>

实际开发: 
实际开发中会将功能预制体放到一个可见的GameObject目录下,将这个GameObject目录作为查找根节点,下面的所有对象(隐藏、非隐藏)都可以查找到。

你可以把”map”节点放在一个active = true的MapRoot上,无论是关闭 或者 显示 代码中写起来都很方便。 假如你的map节点就是顶级节点,那么它一旦天生acive = false ,那么你将无法得到它的对象,更无法设置它的属性了。

<code class="language-C# hljs avrasm has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">GameObject root = GameObject<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.Find</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"MapRoot"</span>)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>

GameObject map =  root<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.transform</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.Find</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"map"</span>)<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.gameObject</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;       </span>
map<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.SetActive</span>(true)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li></ul>

根节点可见

2.3 其他查找

GameObject.FindWithTag 
GameObject.FindGameObjectsWithTag 
使用极少,并无卵用

Resources.FindObjectsOfTypeAll 
返回指定类型的对象列表。主要用于编辑器中,eg。检测内存泄露、批量查找的功能等

3 实际测试

目录结构如下,绿色代表现实,红色代表隐藏

这里写图片描述

<code class="language-C# hljs rsl has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">void Start () {
    <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// GameObject.Find</span>
    {
        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 根节点</span>
        GameObject.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A11"</span>);     <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// true</span>

        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 父节点(受父节点影响)</span>
        GameObject.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A21"</span>);     <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false</span>
        GameObject.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A22"</span>);     <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// true</span>

        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 孙子节点(受父节点影响)</span>
        GameObject.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A31"</span>);     <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false     </span>
        GameObject.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A32"</span>);     <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false</span>
        GameObject.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A33"</span>);     <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false</span>
        GameObject.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A34"</span>);     <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// true</span>

        GameObject.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A34"</span>);                 <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// true  相对路径查找</span>
        GameObject.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"/A34"</span>);                <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false 绝对路径查找</span>
        GameObject.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"/A11/A22/A34"</span>);        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// true</span>
        GameObject.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A11/A22/A34"</span>);         <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// true</span>
        GameObject.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"/A22/A34"</span>);            <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false</span>
        GameObject.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A22/A34"</span>);             <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// true</span>
    }

    <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// Transform.find</span>
    {
        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 根节点</span>
        Transform A11 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A11"</span>);      <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false</span>

        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 父亲节点</span>
        Transform A21 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A21"</span>);      <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// true</span>
        Transform A22 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A22"</span>);      <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// true</span>

        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 孙子节点</span>
        Transform A31 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A31"</span>);      <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false</span>
        Transform A32 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A32"</span>);      <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false</span>
        Transform A33 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A33"</span>);      <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false</span>
        Transform A34 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A34"</span>);      <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false</span>

        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 使用相对于根节点的查找目录</span>
        Transform AA31 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A21/A31"</span>);     <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// true</span>
        Transform AA32 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A21/A32"</span>);     <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// true</span>
        Transform AA33 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A22/A33"</span>);     <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// true</span>
        Transform AA34 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A22/A34"</span>);     <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// true</span>

        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 包含根节点的查找目录</span>
        Transform AA311 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A11/A21/A31"</span>);        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false    </span>
        Transform AA321 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A11/A21/A32"</span>);        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false</span>
        Transform AA331 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A11/A22/A33"</span>);        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false</span>
        Transform AA341 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"A11/A22/A34"</span>);        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false</span>

        <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// 绝对路径</span>
        Transform AA3111 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"/A11/A21/A31"</span>);      <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false</span>
        Transform AA3211 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"/A11/A21/A32"</span>);      <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false</span>
        Transform AA3311 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"/A11/A22/A33"</span>);      <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false</span>
        Transform AA3411 = <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">transform</span>.Find(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"/A11/A22/A34"</span>);      <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">// false</span>
    }
}
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li></ul>

4 即使隐藏root节点gameObject也能进行查找的方法

找到了一个即使隐藏root节点gameObject也能进行查找的方法。 
http://answers.unity3d.com/questions/52560/gameobjectfind-work-on-inactive-objects.html

代码预览:

<code class="language-C# hljs avrasm has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">
        GameObject[] pAllObjects = (GameObject[])Resources<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.FindObjectsOfTypeAll</span>(typeof(GameObject))<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>

         foreach (GameObject pObject <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> pAllObjects)
         {
            if (pObject<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.transform</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.parent</span> != null)
             {
                     continue<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>
             }

            if (pObject<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.hideFlags</span> == HideFlags<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.NotEditable</span> || pObject<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.hideFlags</span> == HideFlags<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.HideAndDontSave</span>)
             {
                 continue<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>
             }

            if (Application<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.isEditor</span>)
             {
                 string sAssetPath = AssetDatabase<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.GetAssetPath</span>(pObject<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.transform</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.root</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.gameObject</span>)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>
                 if (!string<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.IsNullOrEmpty</span>(sAssetPath))
                 {
                     continue<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>
                 }
             }

            Debug<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.Log</span>(pObject<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.name</span>)<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">;</span>
         }</code>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值