🧑‍💻

GetComponentとFindObjectOfTypeの違い

2023/01/21に公開

結論

  • GetComponent<>は該当のスクリプトがattachされているGameObjectの別のComponentを取得したい場合に利用
  • FindObjectOfType<>はシーン上に存在する指定した型のコンポーネントを取得するために使用します。この関数は、シーン上に存在する最初に見つかったコンポーネントを取得します。

具体例

  • 上のようにGameObjectが2つ(PlayerとAudioPlayer)がある場合に、PlayerのScriptで自身のRigidbodyを取得したい場合には以下のように書く
using UnityEngine;

public class Player : MonoBehaviour
{
    void Start()
    {
        Rigidbody rb = GetComponent<Rigidbody>();
    }
}
  • PlayerのスクリプトでAudioPlayerを取得したい場合には以下のように書く
using UnityEngine;

public class Player : MonoBehaviour
{
    void Start()
    {
        AudioPlayer audioPlayer = FindObjectOfType<AudioPlayer>();
    }
}

Discussion