[Unity]FindObjectOfType
🎮FindObjectOfType
⚙️FindObjectOfType
자신 이외의 다른 게임 오브젝트의 컴포넌트에 접근하기 위해 FindObjectOfType() 메서드를 사용할 수 있다. 하지만 이 방법은 대상이 여러 개 있을 경우 동작하지 않는다.
플레이어 게임 오브젝트의 컴포넌트인 PlayerController에서 레벨 스프라이트 게임 오브젝트의 SurfaceEffector2D 컴포넌트에 접근해서 SurfaceEffector2D의 속도를 수정하는 코드이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
[SerializeField] float boostSpeed = 40f;
[SerializeField] float baseSpeed = 20f;
SurfaceEffector2D surfaceEffector2D;
// Start is called before the first frame update
void Start()
{
surfaceEffector2D = FindObjectOfType<SurfaceEffector2D>();
}
// Update is called once per frame
void Update()
{
RespondToBoost();
}
void RespondToBoost()
{
if(Input.GetKey(KeyCode.Space))
{
surfaceEffector2D.speed = boostSpeed;
}
else
{
surfaceEffector2D.speed = baseSpeed;
}
}
}
Leave a comment