코샵
끄적끄적 코딩 공방
코샵

인기 글

  • 분류 전체보기 (470) N
    • MongoDB (4)
    • 일기장 (4)
    • Unity (138)
      • Tip (41)
      • Project (1)
      • Design Pattern (8)
      • Firebase (6)
      • Asset (2)
    • 파이썬 (127) N
      • Basic (40) N
      • OpenCV (8)
      • Pandas (15)
      • PyQT (3)
      • SBC(Single Board Computer) (1)
      • 크롤링 (14) N
      • Fast API (29)
      • Package (6)
    • Linux (4)
    • C# (97)
      • Algorithm (11)
      • Window (7)
    • TypeScript (40) N
      • CSS (2) N
    • Git (11)
    • SQL (5)
    • Flutter (10)
      • Tip (1)
    • System (1)
    • BaekJoon (6)
    • Portfolio (2)
    • MacOS (1)
    • 유틸리티 (1)
    • 서비스 (5)
    • 자동화 (3)
    • Hobby (10)
      • 물생활 (10)
      • 식집사 (0)
전체 방문자
오늘
어제

최근 댓글

최근 글

반응형
hELLO · Designed By 정상우.
코샵

끄적끄적 코딩 공방

Unity

Unity - 씬 전환 시 파괴되지 않는 오브젝트

2023. 4. 3. 23:42
반응형
Unity에서는 씬(Scenes)을 사용하여 게임을 구성할 수 있습니다. 씬은 게임 화면의 일부분을 의미하며, 여러 개의 씬을 조합하여 게임을 만들 수 있습니다. 씬을 전환할 때, 기존에 로드되어 있던 오브젝트들은 파괴됩니다. 그러나, DontDestroyOnLoad 함수를 사용하여 특정 오브젝트를 파괴하지 않고 유지할 수 있습니다.

DontDestroyOnLoad 함수

DontDestroyOnLoad 함수는 특정 오브젝트를 씬 전환 시 파괴되지 않도록 합니다. 이 함수를 사용하면, 특정 오브젝트가 다른 씬에서도 유지될 수 있습니다.

using UnityEngine;

public class Example : MonoBehaviour
{
    void Awake()
    {
        DontDestroyOnLoad(gameObject);
    }
}

위 코드에서는 Awake 함수에서 DontDestroyOnLoad 함수를 호출하여 자신의 게임 오브젝트를 파괴하지 않도록 합니다. 이 코드를 사용하면, 이 스크립트가 적용된 게임 오브젝트는 다른 씬에서도 계속 유지됩니다.


주의사항

DontDestroyOnLoad 함수를 사용할 때에는 몇 가지 주의사항이 있습니다.

1. 중복 호출

DontDestroyOnLoad 함수는 한 번만 호출해야 합니다. 만약, 같은 게임 오브젝트에 대해 DontDestroyOnLoad 함수를 여러 번 호출하면, 예기치 않은 동작이 발생할 수 있습니다.

2. 다른 오브젝트와의 충돌

DontDestroyOnLoad 함수를 사용하여 유지되는 게임 오브젝트는 다른 씬에서도 계속해서 유지됩니다. 따라서, 같은 이름의 게임 오브젝트가 다른 씬에서도 존재할 경우, 예기치 않은 동작이 발생할 수 있습니다.


예제

다음은 DontDestroyOnLoad 함수를 사용하여 특정 오브젝트를 유지하는 예제 코드입니다.

using UnityEngine;

public class Example : MonoBehaviour
{
    void Awake()
    {
        DontDestroyOnLoad(gameObject);
    }
}

위 코드에서는 Awake 함수에서 DontDestroyOnLoad 함수를 호출하여 자신의 게임 오브젝트를 파괴하지 않도록 합니다. 이 코드를 사용하면, 이 스크립트가 적용된 게임 오브젝트는 다른 씬에서도 계속 유지됩니다.


결론

Unity에서 DontDestroyOnLoad 함수를 사용하여 씬 전환 시 파괴되지 않는 오브젝트를 유지할 수 있습니다. DontDestroyOnLoad 함수를 사용할 때에는 중복 호출과 다른 오브젝트와의 충돌에 주의해야 합니다. 이 함수를 사용하면, 게임 오브젝트를 다른 씬에서도 계속해서 사용할 수 있습니다.

저작자표시 비영리 변경금지

'Unity' 카테고리의 다른 글

Unity : UnityEngine.Pool 오브젝트 풀링  (0) 2023.04.21
Unity Component : SpriteRenderer  (0) 2023.04.17
Unity에서 Resources 클래스 사용하기  (0) 2023.03.27
Unity에서 플레이어 데이터를 JSON 파일로 저장하기  (0) 2023.03.26
Unity 카메라(Camera) 컴포넌트  (1) 2023.03.25
    'Unity' 카테고리의 다른 글
    • Unity : UnityEngine.Pool 오브젝트 풀링
    • Unity Component : SpriteRenderer
    • Unity에서 Resources 클래스 사용하기
    • Unity에서 플레이어 데이터를 JSON 파일로 저장하기
    코샵
    코샵
    나의 코딩 일기장

    티스토리툴바