250414 TIL

박소희·2025년 4월 14일

Unity_7기

목록 보기
68/94

씬 전환 시 Gamemanager에서 새로운 Player를 참조할 수 있게 했다.

public class GameManager : SingleTon<GameManager>
{
    public Player Player { get; private set; }

    protected override void Awake()
    {
        base.Awake();
        Player = FindObjectOfType<Player>();
        SceneManager.sceneLoaded += OnSceneLoaded;
    }

    void OnSceneLoaded(Scene scene, LoadSceneMode mode)
    {
        Player = FindObjectOfType<Player>();

    }
    private void OnDestroy()
    {
        SceneManager.sceneLoaded -= OnSceneLoaded;
    }

    public void LoadScene(string sceneName)
    {
        UIManager.Instance.ClearUI();
        SceneManager.LoadScene(sceneName);
    }
}

플레이어와 관련된 것(컨트롤러)들은 재참조해줘야 해서

void Start()
{
    camera = Camera.main;
    PlayerController input = GameManager.Instance.Player.Input;
    input.playerActions.Interection.started += OnInteractInput;
    SceneManager.sceneLoaded += OnInteract;
}
   private void OnInteract(Scene scene, LoadSceneMode mode)
   {
       PlayerController input = GameManager.Instance.Player.Input;
       input.playerActions.Interection.started += OnInteractInput;
   }

똑같이 sceneLoaded를 사용해서 해결했다.

0개의 댓글