unity 20

Unity Addressable Asset (5)

이번 게시글에서는 Addressable Asset을 활용하여 Runtime에 Resource를 다운로드하는 것을 해보겠습니다. 종종 게임들을 보다보면 실제 설치 파일의 용량은 상대적으로 적은데 앱을 실행하다 보면 리소스를 다운로드할지 확인을 하며 다운로드하는 앱을 실행하고 다운로드하는 경우가 있습니다. 오늘은 이것에 대해 알아보겠습니다.Check Lists1. 변경된 리소스 파일이 있는지 확인합니다.2. 변경된 리소스 파일이 있으면 Dependency를 다운로드 합니다.3. 여기서 Dependency란 무엇일까요?4. Dependency를 다운로드한 이후에 Addressable.Load 하여 Resource를 사용합니다. 1. 변경된 리소스 파일이 있는지 확인. (GetDownloadSizeAsync)A..

Unity 2025.02.13

C# 델리게이트(Delegate) in Unity

오늘 시간에는 Delegate에 대해 알아보겠습니다.먼저 Delegate가 무엇인지에 대해 이해해야 되는데요 아래와 같습니다. Delegate란 번역해보면 대리자라는 의미입니다. Unity에서는 함수 포인터라는 개념으로도 많이 사용됩니다. 메서드 자체를 인자로 넘겨주어 전달받은 곳에서 대리로 해당 메서드를 실행할 수 있습니다. C#에서 delegate 기본형식은 아래와 같습니다delegate 반환형 델리게이트명(인자);delegate int Add(int parameter1, int parameter2);이미지를 확인해 보면 delegate를 이용하여 Sum 함수를 호출한 것과, 단순호출한 것에 결과의 차이가 없음을 알 수 있습니다. 그렇다면 왜 delegate를 사용하는 것일까요?  Delegate의 ..

Unity 2025.01.29

Unity Runtime Memory 관리 - 1

이번 게시글에서는 Unity의 Memory 관리에 대해서 조금 알아보려고 합니다. 주제를 정하게 된 배경이 주제를 정하게 된 배경에 대해 적어보자면, 최근까지는 메모리를 별로 신경 쓰지 않고 개발을 많이 하고는 했습니다. 하지만 여러 프로젝트를 경험하며, 사용한 Texture, Audio, Mesh, Video 등 다양한 Resource에 대한 최적화를 해두지 않으면 적은 메모리를 가지고 있는 디바이스에서 앱이 구동되지 않을 수 있다는 사실을 알게 되었습니다. 텍스쳐 하나하나, 오디오 하나하나가 많은 영향을 준다는 것을 알고 이 주제에 대해 한번 알아보고자 시작하게 되었습니다.  Unity에서 메모리란?게임 실행에 필요한 데이터를 저장하거나, 처리하기 위해 사용하는 컴퓨터 메모리, 이 메모리 안에는 위에..

Unity 2025.01.12

Unity Addressable Asset (4)

오늘은 최종적으로 Addressable Asset을 Remote 서버에 Build 해서 업로드하고, 해당 Build 된 Addressable Asset을 Load 하여 Runtime에 Prefab을 생성하는 것을 알아보려고 합니다. 먼저 Addressable Asset Group을 Build Load 모드를 변경합니다.내가 선택한 Group의 Build or Load 방식을 Remote, Local을각각 지정할 수 있고 이 옵션은 Addressable Group 별로 지정이 가능하다. Load Path와 Remote Path를 지정하는 것에 대해 다시한번 설명하자면, Addressable Profile에서 추가 설정을 하면 됩니다.Remote Build, Load Path를 지정해주고, Addressab..

Unity 2025.01.02

Unity Addressable Asset (2)

오늘 시간에는 Addressable Asset의 옵션에 대해 알아보겠습니다. 먼저 앞선 글에서 Unity Addressable Asset은 무엇인지에 대해 알아보았고, 오늘은 각종 옵션과, Local 기준으로 Asset을 로드하는 것을 해보겠습니다. Addressable Asset GroupAddressable Asset의 그룹핑을 지정하는 곳으로, 사용자가 사용 방법에 맞게 그룹핑하여, 같이 로드될 Asset Bundle을 지정하는 방식입니다.  여기서 Window -> Asset Management -> Addressable -> Group을 들어가게 되면 현재 그룹핑되어있는 Asset들을 확인할 수 있습니다.여기서 Play Mode Script 방식을 지정하게 되면 위 두 가지의 옵션이 나타나게 됩..

Unity 2024.12.27

Unity Addressable Asset (1)

Unity Addressable AssetAddressable Asset 이란 주소가 있는 Asset(3D 모델 파일, 이미지 텍스쳐, 오디오, 비디오)으로 유니티에서 Runtime에 주소라는 고유의 식별자로 Asset에 접근하여 로드 및 사용할 수있는 Asset을 말한다. Addressable Asset을 사용하는 이유?장점 Resource 폴더의 로드방식보다 초기 Apk의 용량이 작다.별도의 추가 Build없이 Asset을 서버로부터 업데이트가 가능하다.사용하지 않는 Asset의 경우에 Unload를 통해 효율적인 메모리 관리가 가능하다.DLC 방식에 적합하다(Downloadable Content)의 약어. (확장팩, 추가 캐릭터, 새로운 스토리 등)단점초기 설정 방식이 어렵다. (기존 Resourc..

Unity 2024.12.15

Unity Lighting (2)

오늘은 이전에 다루었던 Unity Lighting에 대해서 조금더 자세히 알아보고자 합니다. Unity에는 별도의 Lighting 세팅이 가능하다. 설정 가능한 Lighting Setting은 아래와 같습니다. SceneAdaptive Probe VolumeEnvironmentRealtime LightmapsBaked Lightmaps오늘은 Environment, Baked Lightmaps에 대해 자세히 설명해보려고 합니다. EnvironmentScene의 환경값에 대한 설정을 할 수있는 창으로, Skybox, Sun Source, Shadow Color 등 게임 씬의 전반적인 환경값을 관리할 수 있다. SkyboxMaterial :  Cube  Map Material을 적용하여 유니티 씬 전체 Sky..

Unity 2024.12.03

Unity Lighting

오늘 다루어볼 주제는 Unity에서의 Lighting 입니다.Light란 3D 공간상에서의 빛의 방향이나 세기, 색상 등을 조정하는 것을 의미합니다.Unity에서의 Light타입은 다음과 같이 나누어져 있습니다.Light TypeDirectional SpotPointArea (baked only)각 Type을 예시로 들어 이미지를 확인해보겠습니다.Directional LightDirectional Light 의미를 풀어서 설명하면 방향성을 가지는 빛 입니다.해당 오브젝트는 Light오브젝트의 위치에 상관없이 정해진 Rotation(방향)만으로 빛을 나타내는 방식 입니다.큐브 오브젝트를 기준으로 이미지와 같이 Light의 방향에 따른 빛이 형성되어 바닥 오브젝트에 그림자가 생기는 것을 볼 수있습니다.Spo..

Unity 2024.11.28

AP(Application Processor)

이번에는 Unity에서의 iOS 디바이스의 AP에 대해서 알아보도록 하겠습니다.AP란 Application Processor의 약자로, 스마트폰, 태블릿, 스마트 워치 등과 같은 모바일 기기에서 애플리케이션 실행과 다양한 기능을 처리하는 핵심 중앙 처리 장치를 의미합니다.AP의 구성요소CPU : AP의 중앙 처리 장치, 앱의 실행, 시스템 로직 처리GPU : 그래픽과 관련된 연산을 담당. User Interface, 게임, 영상 등의 그래픽 성능NPU (Neural Processing Unit) : AI와 머신러닝 연산을 가속화 하여, 얼굴 인식, 이미지 분석 기능 지원ISP (Image Signal Processor) : 카메라 이미지와 비디오를 처리하는 전용 프로세서DSP (Digital Signal..

Computer 2024.11.19

Unity_Localization

이번 시간에는 Unity에서 다국어 지원 하는 방법에 대해 알아보도록 하겠습니다.다국어 지원이란, 하나의 게임이 여러 언어로 플레이할 수 있도록 번역 및 현지화된 인터페이스, 텍스트, 음성 등을 제공하는 것을 의미합니다. 다국어 지원은 게임 개발자들이 다양한 언어를 사용하는 전 세계의 플레이어들을 대상으로 게임을 제공할 수 있게 해줍니다. 이를 통해 더 많은 사용자에게 접근 가능성을 제공하며, 게임의 글로벌 시장 확장에 중요한 역할을 합니다. 다른 언어들에서는 String Table, 데이터베이스 형태로 지원하는 경우가 많습니다. 이번에 알아볼 Unity에서의 다국어 지원은 Unity 패키지인 Localization 입니다.https://docs.unity3d.com/Packages/com.unity.l..

Unity 2024.08.26