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>