Object.Destroy
Removes a gameobject, component or asset.
obj
will be destroyed now or if a time is
specified t
seconds from now. If obj
is
a Component it
will remove the component from
the GameObject and
destroy it. If obj
is a GameObject it
will destroy the GameObject,
all its components and all transform
children of the GameObject.
Actual object destruction is always
delayed until after the current Update loop, but will always be done before
rendering.type | Type of the class to match while searching. |
Returns a list of all objects of Type type
.
using UnityEngine; using System.Collections; public class Example : MonoBehaviour { void OnGUI() { GUILayout.Label("All " + Resources.FindObjectsOfTypeAll(typeof(UnityEngine.Object)).Length); GUILayout.Label("Textures " + Resources.FindObjectsOfTypeAll(typeof(Texture)).Length); GUILayout.Label("AudioClips " + Resources.FindObjectsOfTypeAll(typeof(AudioClip)).Length); GUILayout.Label("Meshes " + Resources.FindObjectsOfTypeAll(typeof(Mesh)).Length); GUILayout.Label("Materials " + Resources.FindObjectsOfTypeAll(typeof(Material)).Length); GUILayout.Label("GameObjects " + Resources.FindObjectsOfTypeAll(typeof(GameObject)).Length); GUILayout.Label("Components " + Resources.FindObjectsOfTypeAll(typeof(Component)).Length); } } import System.Collections.Generic; // This script finds all the objects in scene, excluding prefabs: function GetAllObjectsInScene(): List.<GameObject> { var objectsInScene: List.<GameObject> = new List.<GameObject>(); for (var go: GameObject in Resources.FindObjectsOfTypeAll(typeof(GameObject)) as GameObject[]) { //对于一些不可编辑的资源,以及在场景中但隐藏,不保存,不删除的资源,例如mesh, texture,shader。跳过不处理。
if (go.hideFlags == HideFlags.NotEditable || go.hideFlags == HideFlags.HideAndDontSave) continue; var assetPath: String = AssetDatabase.GetAssetPath(go.transform.root.gameObject);
// 如果是可编辑的但又找到了对应的AssetDataBase路径,则应该是Prefab。 需验证! if (!String.IsNullOrEmpty(assetPath)) continue; objectsInScene.Add(go); } return objectsInScene; }
Component.GetComponentsInChildren
GameObject.GetComponentsInChildren
t | The type of Component to retrieve. |
includeInactive | Should inactive Components be included in the found set? |
Returns all components of Type type
in the GameObject or
any of its children.
using UnityEngine; using System.Collections; public class Example : MonoBehaviour { public Component[] hingeJoints; void Example() { hingeJoints = GetComponentsInChildren<HingeJoint>(); foreach (HingeJoint joint in hingeJoints) { joint.useSpring = false; } } }
GetComponent | Returns the component of Type type if the game object has one attached, null if it doesn‘t. You can access both builtin components or scripts with this function. |
---|---|
GetComponentInChildren | Returns the component of Type type in the GameObject or any of its children using depth first search. |
GetComponents | Returns all components of Type type in the GameObject. |
GetComponentsInChildren | Returns all components of Type type in the GameObject or any of its children. |
GameObject.Find
Finds a game object by name
and returns it.
根据路径或名称查找场景物件
name
can be found, null is returned. If name
contains a ‘/‘ character it will traverse the
hierarchy like a path name. This function only returns active
gameobjects.var hand : GameObject; // This will return the game object named Hand in the scene. hand = GameObject.Find("Hand");
// This will return the game object named Hand. // Hand must not have a parent in the hierarchy view! // 绝对路径查找 hand = GameObject.Find("/Hand");
// This will return the game object named Hand, // which is a child of Arm -> Monster. // Monster must not have a parent in the hierarchy view! // 绝对路径查找 hand = GameObject.Find("MonsterArm/Hand"); // 应该是 hand = GameObject.Find("/Monster/Arm/Hand")吧?待验证
// This will return the game object named Hand, // which is a child of Arm -> Monster. // Monster may have a parent. // 相对路径查找 hand = GameObject.Find("MonsterArmHand"); // 应该是hand = GameObject.Find("Monster/Arm/Hand")吧?待验证
// Find the hand inside Start and rotate it every frame
private var hand : GameObject;
function Start () {
hand = GameObject.Find("Monster
Arm/Hand");
}
function Update () {
hand.transform.Rotate(0, 100 * Time.deltaTime, 0);
}
Find | Finds a game object by name and returns it. |
---|---|
FindGameObjectsWithTag | Returns a list of active GameObjects tagged tag. Returns empty array if no GameObject was found. |
FindWithTag | Returns one active GameObject tagged tag. Returns null if no GameObject was found. |
Object.FindObjectsOfType
Returns a list of all active loaded objects of Type type
.
类型查找Object, 由于是指定了Type的,除非指定的Type是GameObject或者Resource Object,一般该函数都是用来查找返回Component?
// When clicking on the object, it will disable all springs on all // hinges in the scene. function OnMouseDown () { var hinges : HingeJoint[] = FindObjectsOfType(HingeJoint) as HingeJoint[]; for (var hinge : HingeJoint in hinges) { hinge.useSpring = false; } }
FindObjectOfType | Returns the first active loaded object of Type type. |
---|---|
FindObjectsOfType | Returns a list of all active loaded objects of Type type. |
原文:http://www.cnblogs.com/realtimepixels/p/3652154.html