다른 스크립트에서 작성된 UI 관련 메서드를 플레이어 스크립트에서 호출하여 연결하는 방법
1. UI 스크립트의 메서드를 public으로 설정
public void OnOffMenu()
{
MenuUIGameObject.SetActive(!MenuUIGameObject.activeSelf);
}
2. UI 스크립트를 찾을 수 있도록 참조 변수 생성
public MenuUI menuUI; // UI 스크립트를 참조할 변수
menuUI에 값이 비어 있음(null)
3. Awake() 또는 Start()에서 UI 스크립트 연결 FindObjectOfType<MenuUI>() 사용, 간단하지만 불안전
private void Start()
{
menuUI = FindObjectOfType<MenuUI>(); // 씬에서 MenuUI 스크립트가 있는 오브젝트 찾기
}
3-1. Inspector에서 수동으로 연결
public MenuUI menuUI;
- PlayerController가 있는 오브젝트를 선택
- Inspector에서 menuUI 변수에 MenuUI가 포함된 UI 오브젝트를 드래그하여 연결
4. 플레이어 스크립트에서 UI 메서드 호출
public void OnMenu(InputAction.CallbackContext context)
{
if (context.phase == InputActionPhase.Started) // ESC 키 입력 감지
{
TogglePause();
menuUI.OnOffMenu(); // UI 메서드 호출
}
}