Unity 27

[Unity] Project Auditor

이번 게시글에서는 Unity에서 Project Auditor에 대해서 다루어보겠습니다. 다루게 된 계기여러 프로젝트를 진행하며, 최적화나 트러블 슈팅에 대한 관심이 많아져있었고, 그러던 중 유니티가 업데이트되면서 제공하는 신규 기능 및 패키지를 찾아보다가 알게 되어 다루게 되었습니다. Project Auditor란?Project Auditor란 단어별로 해석해 보자면, Proejct(프로젝트) + Auditor(감사자 or 감사관)으로 프로젝트를 점검해 주는 것을 도와주는 기능이라고 이해할 수 있을 거 같습니다. Project Auditor vs Unity ProfilerProject AuditorUnity Profiler정적동적코드 및 프로젝트 점검로직, 메모리, 렌더링 프로파일링 Project A..

Unity 2025.12.13

[디자인 패턴] 구조 패턴 - 어댑터 패턴

이번 게시글에서는 구조 패턴 중 하나인 어댑터 패턴에 대해서 이야기해보려고 합니다.이번 어댑터 패턴을 공부하면서, 기존에 사용하고 있다고 생각했던 어댑터 패턴이 잘못되었다는 사실을 잘 알게 되는 계기가 된 것 같습니다. 아래 문제 상황을 가정해 보겠습니다. 문제 상황소리를 재생하는 시스템 A와, B가 있다고 가정을 하였을 때, A의 소리를 재생하는 시점은 유니티 내부에서 특정 버튼을 클릭하였을 때 PlaySound()로 소리를 재생하고, B의 경우에 똑같은 시점 혹은 방법(유니티 내부에서 특정 버튼을 클릭하였을 때)으로 API를 통해 외부 디바이스에서 소리를 재생한다고 하는 경우를 문제 상황으로 제시해 보겠습니다. 이때 Client는 같은 방식으로 메서드를 실행하지만, 내부적으로 처리가 달라야 하는 경..

Unity 2025.12.01

[디자인 패턴] 생성 패턴 - 프로토타입 패턴

이번 게시글에서는 생성 패턴 중 하나인 프로토 타입 패턴에 대해서 이야기해보려고 합니다.아래와 같은 문제 상황이 있다고 가정하여, 이를 해결하고자 할 때 해결책에 대한 방안을 고려해 보도록 하겠습니다. 문제 상황이미 생성되어 있는 복잡한 구조의 오브젝트를 기준으로, 정확한 복사본을 만들어야 하는 상황이 발생하였습니다. 그렇다면 다음과 같이 복사를 진행하게 될 것입니다. 먼저 같은 클래스의 새 객체를 생성하고, 원본 객체의 모든 필드(오브젝트의 복잡한 구조)를 새 객체에 복사해야 합니다. 하지만, 객체의 일부 필드들이 private, 직렬화 되지않을 때 복사하기 어려움이 생기게 됩니다. 해결책실제 복제가 진행되는 객체들에게 복제 프로세스를 위임합니다. 이 말은 특정 객체 A를 사용하는 클래스 B가 있다고..

Unity 2025.11.21

[디자인 패턴] 생성 패턴 - 빌더

이번 게시글에서는 생성 패턴 중 하나인 빌더 패턴에 대해서 이야기해보려고 합니다.아래와 같은 문제 상황이 있다고 가정하여, 이를 해결하는 디자인 패턴의 구조를 작성하고, 실제 스크립트를 구현해 보겠습니다. 문제 상황많은 멤버 변수를 필드로 가지는 특정 클래스의 객체를 생성한다고 하였을 때, 각 멤버 변수마다의 초기화 값을 생성자를 통해 입력해야 합니다. 이때 생성되는 객체별로, 사용하지 않는 멤버 변수들이 종종 있을 수 있지만, 생성자를 통해 초기화를 진행하게 되면 생성자에 포함되어 있는 파라미터들을 전부 넣어줘야 합니다.빌더 패턴이란?빌더 패턴(Builder Pateern)은 복잡한 객체의 생성 과정과 표현 방법을 다양한 구성의 인스턴스를 만드는 생성 패턴입니다.기존 생성자에 들어갈 매개변수들을 메서드..

Unity 2025.10.14

[디자인 패턴] 생성 패턴 - 추상 팩토리

문제 상황RPG 게임을 만드는 개발자가 있습니다. 이때 각 지형 계절별로 생성되는 몬스터가 다르고, 몬스터들의 각 능력치, 행동패턴, 특성이 조금씩 변형이 이루어져야 한다고 가정할 때 몬스터를 생성하는 스포너부터 시작해서, 각 변형된 몬스터들을 전부 정의해야 하는 상황입니다. 문제 해결몬스터를 스폰하는 스포너에서 생성하는 몬스터를 추상화하여, 각 타입에 맞게 나누고, 서브 클래스에서 재정의하여, 몬스터들의 각기 다른 변형(재정의)에 대해 정의하고, 이를 스폰하는 방식으로 구조를 설계해보려고 합니다. 아래와 같은 클래스 다이어그램으로 진행해 보겠습니다. Factory 이를 이용하는 Client 혹은 Manager에서 IMonsterFactory를 참조받습니다.Client에서 CreateZombie, Cr..

Unity 2025.10.13

[디자인 패턴] 생성 패턴 - 팩토리 메서드

디자인 패턴의 항목 중 생성 패턴에 대해서 알아보겠습니다. 스터디 계기개발을 진행하다 보면 디자인 패턴에 대해서 많이들 이야기하고 실제 많이 활용하는 경우가 많습니다. 하지만 정확히 알지 못하고 사용하게 된다면, 오히려 독이 될 수 있다고 판단하여, 디자인 패턴 하나씩 알아가 보며, 예제 파일을 만들어 보려고 합니다.문제 상황3D 컨텐츠를 모델링하고, 관리하는 앱을 개발하고 있다고 가정해 보겠습니다. 프로포 타입으로, FBX만 관리하고, 조작하며, 콘텐츠를 제작한다고 가정하고, 추후 확장하기 위해, Obj, Glb를 추가한다고 하였을 때, 새로운 Obj, Glb에 대한 클래스를 기존 프로그램에 추가하는 것은 매우 어렵습니다. 이 문제를 해결하기 위해 아래와같은 팩토리 메서드를 활용해볼 수있습니다.팩토리 ..

Unity 2025.10.11

ScriptableObject - 2

이번 게시글에서는 이전 게시글에서 다루었던 ScriptableObject의 사용방법과 생성 방식에 대해서 알아보겠습니다.ScriptableObject이론 사용 방법데이터 컨테이너 클래스 정의 및 ScriptableObject 상속. asset생성 및 데이터 할당데이터 활용데이터 컨테이너 클래스 정의 및 ScriptableObject 상속[CreateAssetMenu(menuName = "Game/Monster")]public class Monster : ScriptableObject{ public float speed; public int MaxHealth;}소스와 같이 클래스를 정의하고, ScriptableObject를 상속합니다. 해당 에셋을 생성할 수 있게, CreateMenu를 정의하고..

Unity 2025.10.10

ScriptableObject - 1

오늘 알아볼 내용은 ScriptableObject의 이론에 대해서 정리해보려고 합니다. ScriptableObject란?Unity 공식 ScriptableObject - Unity 매뉴얼ScriptableObject는 클래스 인스턴스와는 별도로 대량의 데이터를 저장하는 데 사용할 수 있는 데이터 컨테이너입니다. ScriptableObject의 주요 사용 사례 중 하나는 값의 사본이 생성되는 것을 방지하docs.unity3d.com공식문서의 말을 인용하자면, 클래스와 인스턴스와는 별도로 대량의 데이터를 저장하는 데 사용할 수 있는 데이터 컨테이너입니다. 특징값의 사본이 생성되는 것을 방지하여, 메모리 사용을 감소시킴.런타임에 데이터 컨테이너에 저장해 둔 값을 일괄적으로 변경이 가능.로비씬 -> 게임씬으로..

Unity 2025.10.10

Renderer Feature - 3(선택적 글로우/하이라이트)

RendererFeature(2) Unity_RF(Renderer Feature) - 2Renderer Feature의 이전 설명 Unity_URP RF(RendererFeature)해당 주제를 스터디하게 된 배경처음 XR, AR을 접하게 되었을 때 해보았던 간단한 예제로, AR 포탈로 접하며 AR을 시작하게 되었습니다.이때 포탈을develophyun.tistory.com 이전 글에 이어서 RF에 대한 기능을 하나씩 추가로 적용해 보도록 하겠습니다. 이번에는 선택적 글로우/하이라이트라는 그래픽 효과에 대해 적용해보려고 합니다. 선택적 글로우/하이라이트 선택적 글로우/하이라이트란? 특정 오브젝트에 글로우 효과를 주는 것으로, 게임에서 현재 내가 인터렉션 해야 되는 오브젝트나 혹은, 특정 위치에 하이라이팅을..

Unity 2025.06.24

Unity_RF(Renderer Feature) - 2

Renderer Feature의 이전 설명 Unity_URP RF(RendererFeature)해당 주제를 스터디하게 된 배경처음 XR, AR을 접하게 되었을 때 해보았던 간단한 예제로, AR 포탈로 접하며 AR을 시작하게 되었습니다.이때 포탈을 구현할 때 Shader 코드를 활용하여 Stencil을 적용develophyun.tistory.com 이전 글에서 URP의 Renderer Feature에 대해 알아보았는데 예제가 너무 부족한 것 같아 추가적인 예제를 작성하기 위에 글을 작성하게 되었습니다. Render Objects의 Overrides 항목에 Depth Test의 옵션 중 Write Depth, Depth Test로 나뉘어 있습니다. 이때 Write Depth는 해당 Render Objects..

Unity 2025.05.23