Unity3d只通過transform和gameObject獲取對象?

Tags: 對象, 細節,

Unity3d中要對對象進行操作必須首先去獲取得到場景中的對象,那麼弄清除獲取對象的小細節就能夠事半功倍

工具/原料

Unity3d和其內置的編譯器

方法/步驟

在層級面板中選擇多個對象相同的部分在監聽器面板中給顯示出來並且批量操作

Unity3d只通過transform和gameObject獲取對象

Unity3d只通過transform和gameObject獲取對象

Unity3d只通過transform和gameObject獲取對象

在Untiy3d的層級面板中創建多個對象並有複雜的父子級關係

Unity3d只通過transform和gameObject獲取對象

在EmptyObject上掛載的C#腳本來通過GameObject的(靜態的方法)Find()的對象名稱獲取G1對象,通過獲取G1對象的直接父節點對象打印輸出信息

Unity3d只通過transform和gameObject獲取對象

Unity3d只通過transform和gameObject獲取對象

Unity3d只通過transform和gameObject獲取對象

Unity3d只通過transform和gameObject獲取對象

分別通過EmptyObject掛載C#和Cube沒有掛載C# 的GameObject 靜態方法find()的元素目錄(精確指定對象)獲取一個指定的對象,獲取的對象分為隱藏和顯示兩種情況

Unity3d只通過transform和gameObject獲取對象

Unity3d只通過transform和gameObject獲取對象

Unity3d只通過transform和gameObject獲取對象

Unity3d只通過transform和gameObject獲取對象

在EmptyObject上掛載的C#腳本通過transform(公共的方法)find()的對象的名稱獲分別獲取G1,G5和G6。結果只能夠獲取掛載C#的對象的直接子節點對象

Unity3d只通過transform和gameObject獲取對象

Unity3d只通過transform和gameObject獲取對象

Unity3d只通過transform和gameObject獲取對象

分別通過EmptyObject掛載C#和Cube沒有掛載C# 的transform公共方法find()的元素目錄(精確指定對象)獲取一個指定的對象,獲取的對象分為隱藏和顯示兩種情況

Unity3d只通過transform和gameObject獲取對象

Unity3d只通過transform和gameObject獲取對象

Unity3d只通過transform和gameObject獲取對象

Unity3d只通過transform和gameObject獲取對象

總結:通過GameObject的靜態的find(),對象的名稱去查找一個對象從整個層級面板中去匹配一個對象忽略掉目錄結構的多少和是否對象掛載了該操作的C#腳本,但最後獲取的對象可能並不是我們想要的,如果查找的對象被隱藏則找不到通過名稱所匹配的對象;通過GameObject的靜態的find()對象的目錄基本去定位獲取對象時一種精確匹配且是不管該匹配的對象是否被隱藏。--------------通過transform的公共find()方法且是對象的名稱來匹配的只能夠所編譯的C#一定是掛載到被查找的對象上面且是找其直接子節點對象(非多級子對象),目錄查找就忽略掉了多級別的子節點對象。

相關問題答案