Version: 5.4 (switch to 5.5b)
言語English
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

GameObject.Find

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

マニュアルに切り替える
public static function Find(name: string): GameObject;
public static GameObject Find(string name);

Parameters

Description

name で GameObject を検索し返します。

この関数は、アクティブなゲームオブジェクトのみを返します。name でゲームオブジェクトが見つからない場合は、null を返します。name に '/' の文字が含まれている場合は、パス名のように階層を走査します。

パフォーマンスの面から、この関数をすべてのフレームで使用することは推奨されません。代わりに、開始時の結果をメンバー変数にキャッシュしたり、GameObject.FindWithTag を使用します。

注意: 子のゲームオブジェクトを見つけたい場合は、多くの場合 Transform.Find を使用する方が簡単です。

var hand : GameObject;
// This returns the GameObject named Hand in the Scene.
hand = GameObject.Find("Hand");

// This returns the GameObject named Hand. // Hand must not have a parent in the Hierarchy view. hand = GameObject.Find("/Hand");

// This returns the GameObject named Hand, // which is a child of Arm > Monster. // Monster must not have a parent in the Hierarchy view. hand = GameObject.Find("/Monster/Arm/Hand");

// This returns the GameObject named Hand, // which is a child of Arm > Monster. hand = GameObject.Find("Monster/Arm/Hand");
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public GameObject hand; void Example() { hand = GameObject.Find("Hand"); hand = GameObject.Find("/Hand"); hand = GameObject.Find("/Monster/Arm/Hand"); hand = GameObject.Find("Monster/Arm/Hand"); } }

GameObject.Find は、ロード時に他のオブジェクトへの参照に自動的に関連付けるのに便利です (例: MonoBehaviour.AwakeMonoBehaviour.Start の中で実行します)。

パフォーマンス上の理由から、毎フレームでこの関数を使用することは推奨されません。

一般的な使い方は GameObject を MonoBehaviour.Start 内の変数に指定することです。そうして、その変数を MonoBehaviour.Update で使用します。

// Find the GameObject named 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); }
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { private GameObject hand; void Start() { hand = GameObject.Find("/Monster/Arm/Hand"); } void Update() { hand.transform.Rotate(0, 100 * Time.deltaTime, 0); } }