Unity

    Unity에서 플레이 중 Recompile을 해제하는 방법

    Unity에서 코드를 수정하면 자동으로 Recompile이 되어 재생되는데, 이 과정에서 멈추고 싶은 경우가 있습니다. 예를 들어, 스크립트를 수정할 때마다 씬이 재생되는 것이 불편하거나, 플레이중인 게임이 멈추는 것이 싫을 경우 등이 그 예입니다. 이번 글에서는 이러한 경우에 Recompile을 해제하는 방법에 대해 알아보겠습니다. Play Mode Script Change 옵션 Unity에서는 Play Mode Script Change 옵션을 제공합니다. 이 옵션을 사용하면 플레이 모드 중에 스크립트를 수정해도 자동으로 Recompile이 되지 않습니다. Play Mode Script Change 옵션을 사용하려면 다음과 같이 설정하면 됩니다. Unity에서 Edit > Preferences를 클릭합..

    Unity : Invoke

    Unity에서는 Invoke 메서드를 통해 일정 시간이 지난 후 특정 메서드를 호출할 수 있습니다. 이를 통해 게임에서 다양한 기능을 구현할 수 있습니다. 이번 글에서는 Unity에서 Invoke 메서드를 사용하는 방법과 주의사항에 대해 자세히 알아보겠습니다. Invoke 메서드 사용하기 Invoke 메서드는 MonoBehaviour 클래스에서 상속받은 클래스에서 사용할 수 있습니다. 아래는 Invoke 메서드의 기본적인 사용 방법입니다. public void Invoke(string methodName, float time); 위 메서드의 첫 번째 인자로는 호출하고 싶은 메서드의 이름을, 두 번째 인자로는 호출까지 걸리는 시간을 입력합니다. 예를 들어, 아래 코드는 3초 후에 TestMethod를 호출..

    Unity : UnityEngine.Pool 오브젝트 풀링

    Object Pooling은 게임에서 자주 사용되는 개념 중 하나입니다. 이는 게임에서 자주 사용되는 객체를 미리 생성해두고 필요할 때마다 재활용하는 방식으로, 게임의 성능을 향상시키고 메모리 사용을 최적화하는 데에 매우 유용합니다. Unity에서는 이를 구현하기 위해 UnityEngine.Pool 네임스페이스를 제공합니다. Object Pooling 구현 방법 Object Pooling을 구현하는 방법은 매우 간단합니다. 먼저 사용할 객체를 미리 생성해둡니다. 그리고 필요할 때마다 생성한 객체를 가져와 사용하며, 사용이 끝나면 객체를 다시 풀에 반환합니다. 이러한 방식으로 객체를 재활용하면 게임의 성능을 향상시킬 수 있습니다. Unity에서는 Object Pooling을 구현하기 위해 UnityEngi..

    Unity Component : SpriteRenderer

    Unity에서 SpriteRenderer는 2D 그래픽을 렌더링하는 컴포넌트입니다. 이번 글에서는 SpriteRenderer의 기능과 사용법에 대해 알아보겠습니다. SpriteRenderer 컴포넌트 추가하기 SpriteRenderer 컴포넌트를 사용하려면, 먼저 GameObject에 추가해야 합니다. 이를 위해서는 다음과 같은 단계를 따릅니다. Scene 뷰에서 GameObject를 선택합니다. Inspector 뷰에서 Add Component 버튼을 클릭합니다. 검색창에서 "SpriteRenderer"를 입력한 후, 결과로 나오는 SpriteRenderer를 선택합니다. 이제 SpriteRenderer 컴포넌트가 GameObject에 추가되었습니다. SpriteRenderer 속성 SpriteRend..

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

    Unity에서는 씬(Scenes)을 사용하여 게임을 구성할 수 있습니다. 씬은 게임 화면의 일부분을 의미하며, 여러 개의 씬을 조합하여 게임을 만들 수 있습니다. 씬을 전환할 때, 기존에 로드되어 있던 오브젝트들은 파괴됩니다. 그러나, DontDestroyOnLoad 함수를 사용하여 특정 오브젝트를 파괴하지 않고 유지할 수 있습니다. DontDestroyOnLoad 함수 DontDestroyOnLoad 함수는 특정 오브젝트를 씬 전환 시 파괴되지 않도록 합니다. 이 함수를 사용하면, 특정 오브젝트가 다른 씬에서도 유지될 수 있습니다. using UnityEngine; public class Example : MonoBehaviour { void Awake() { DontDestroyOnLoad(gameO..

    Unity에서 데이터 저장 할 때 팁

    Application.persistentDataPath와 Application.dataPath는 Unity에서 사용하는 두 가지 경로입니다. 이 두 가지 경로는 각각 다음과 같은 역할을 합니다. Application.persistentDataPath: 앱의 지속적인 데이터를 저장하는 경로입니다. 이 경로는 앱이 종료되어도 데이터가 유지됩니다. Application.dataPath: 앱의 리소스 파일이 저장되는 경로입니다. 이 경로는 앱이 실행될 때마다 초기화됩니다. 따라서 Application.persistentDataPath는 앱에서 생성한 데이터를 저장하는 데 사용되는 경로이며, Application.dataPath는 앱에서 사용하는 리소스 파일을 저장하는 데 사용되는 경로입니다. 예를 들어, 게임에..

    Unity에서 Resources 클래스 사용하기

    Unity에서는 Resources 클래스를 이용하여 프로젝트에서 사용할 수 있는 리소스들을 로드할 수 있습니다. 이번 글에서는 Resources 클래스를 사용하는 방법과 주의사항에 대해 알아보겠습니다. Resources 폴더 생성 먼저, Resources 폴더를 생성합니다. Resources 폴더는 프로젝트의 루트 디렉토리에 생성하면 됩니다. 이 폴더에는 프로젝트에서 사용할 리소스들을 저장합니다. 예를 들어, 이미지, 사운드, 텍스트 등의 파일을 저장할 수 있습니다. Resources.Load 메서드 Resources 폴더에 있는 리소스를 로드하려면, Resources.Load 메서드를 사용합니다. 이 메서드는 로드할 리소스의 경로를 문자열로 전달받습니다. 예를 들어, Resources 폴더에 있는 이미..

    Unity에서 플레이어 데이터를 JSON 파일로 저장하기

    Unity에서 게임을 개발할 때, 플레이어 데이터를 저장하고 불러오는 것은 매우 중요합니다. 이번 글에서는 Unity에서 플레이어 데이터를 JSON 파일로 저장하고 불러오는 방법에 대해 알아보겠습니다. 플레이어 데이터 클래스 생성하기 먼저, 플레이어 데이터를 저장할 클래스를 생성합니다. 이 클래스는 SerializableAttribute를 적용하여 직렬화 가능하도록 만들어야 합니다. using System; [Serializable] public class PlayerData { public int level; public int experience; public int gold; } 위 코드에서는 level, experience, gold를 저장할 수 있는 PlayerData 클래스를 생성하였습니다. ..