Unity官方文檔:https://docs.unity3d.com/ScriptReference/Selection.html
Selection
Selection類是編輯器類,使用需要using UnitryEditor;且腳本要放在Editor文件夾。
靜態變量:
- Selection.activeGameObject //返回當前點擊的場景遊戲物體或Project預製體;選擇多個則返回第一個選擇的;未選擇相應的則返回null
- Selection.activeTransform //返回當前點擊的場景遊戲物體;選擇多個則返回第一個選擇的;未選擇相應的則返回null
- Selection.activeObject //返回當前點擊的場景遊戲物體或Project資源(包括場景、腳本、預製等任意);選擇多個則返回第一個選擇的;未選擇相應的則返回null
-
- Selection.gameObjects //返回一個數組,內容爲當前點擊的場景物體或Project預製體;不符合條件的當前選擇不會加入到數組;爲選擇返回長度爲0的數組而不是null
- Selection.objects //返回一個數組,內容爲當前點擊的場景物體或Project資源(包括場景、腳本、預製等任意);不符合條件的當前選擇不會加入到數組;爲選擇返回長度爲0的數組而不是null
- Selection.transforms //返回一個數組,內容爲當前點擊的場景物體;不符合條件的當前選擇不會加入到數組;爲選擇返回長度爲0的數組而不是null
-
- Selection.selectionChanged //委託,選擇的東西變化的時候調用
靜態函數:
- ///Contains:選擇項中是否包含物體
- bool Selection.Contains(int instanceID)
- bool Selection.Contains(Object obj)
-
- ///GetFiltered:返回按類型和模式過濾的當前選擇。
- ///對於一個具有多個類型組件的選定的遊戲對象,只有第一個組件將包含在結果中。
- ///如果類型是Component或GameObject的子類,則支持完整的SelectionMode。
- ///如果類型不是Component或GameObject的子類,(例如:網格或腳本對象)則只支持有SelectionMode.ExcludePrefab和SelectionMode.Editable 。
- Object[] activeGos= Selection.GetFiltered( GameObject,SelectionMode.Editable | SelectionMode.TopLevel);
-
- ///GetTransforms:允許使用SelectionMode對選擇類型進行細粒度的控制。
- Transform[] selectionObjs= Selection.GetTransforms(SelectionMode.TopLevel | SelectionMode.Editable);
關於SelectionMode :https://docs.unity3d.com/ScriptReference/SelectionMode.html
Unfiltered 返回整個選擇 TopLevel 只返回最上面選擇的transform。另一個選定的transform的選定子物體將被過濾掉。 Deep 返回選擇的物體和它所有的子代 ExcludePrefab 排除選擇裏的所有預製體 Editable 排除任何不被修改的對象。 Assets 只返回Asset文件夾的資源 DeepAssets 如果選擇裏包含文件夾,則也包括文件夾裏的文件和子文件夾。
轉載自:https://blog.csdn.net/qq_33337811/article/details/72858209