🧑💻
GetComponentとFindObjectOfTypeの違い
結論
- 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