| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
- Job 시스템
- 환급챌린지
- 직장인자기계발
- RSA
- job
- 패스트캠퍼스
- 게임개발
- Unity Editor
- Custom Package
- 오공완
- DotsTween
- 2D Camera
- 암호화
- AES
- 가이드
- 최적화
- TextMeshPro
- Dots
- unity
- Tween
- 프레임워크
- Framework
- ui
- adfit
- C#
- 샘플
- 패스트캠퍼스후기
- 직장인공부
- sha
- base64
- Today
- Total
목록unity (106)
EveryDay.DevUp
null이란 무엇인가 — null의 두 얼굴Unity 모바일 개발에서 가장 흔한 런타임 오류는 NullReferenceException이다. 이 예외를 제대로 이해하려면 null이 메모리 수준에서 무엇인지, C#과 Unity가 각각 null을 어떻게 다루는지 알아야 한다. null에는 두 얼굴이 있다 — 참조 타입의 "빈 주소"와, 값 타입에 억지로 null을 담기 위해 만든 Nullable 구조체.목차기초 개념 — null은 주소값 0이다동작 원리 — CLR이 callvirt로 null을 잡아내는 방법특징 — Nullable와 null 연산자 삼총사장단점 — null을 언제 쓰고 언제 피해야 하는가주로 실수하는 부분C# 버전별 개선점핵심 정리기초 개념 — null은 주소값 0이다null이란 무엇인가택배..
boxing과 unboxing — 값 타입이 힙에 올라가는 순간 코드에 new가 없다고 해서 힙 할당이 없는 건 아니다. 📋 목차 boxing과 unboxing — 왜 존재하는가 boxing이 숨어있는 곳 — 생각보다 많다 제네릭으로 boxing 제거하기 C#이 boxing에 맞서온 역사 Unity에서의 boxing — GC 스파이크의 주범 정리 boxing과 unboxing — 왜 존재하는가 C# 타입 시스템이 만든 구조적 긴장 C#은 성능과 통일성이라는 두 목표를 동시에 추구한다. 성능을 위해 int, float, struct 같은 값 타입(Value Type)은 스택(Stack, 메서드가 호출될 때 생성되는 임시 메모리 공간)에 직접..
struct vs class — 값 타입과 참조 타입, 무엇이 다른가 Unity로 게임을 만들다 보면 자연스럽게 이런 질문을 하게 됩니다. "Vector3는 왜 struct고, MonoBehaviour는 왜 class인가?" 단순히 "struct는 스택, class는 힙"이라고 외우는 수준으로는 Unity에서 발생하는 GC(Garbage Collector, 사용되지 않는 메모리를 자동으로 회수하는 런타임 구성요소) 스파이크나 예상치 못한 버그를 잡을 수 없습니다. 이 글에서는 메모리 동작 원리부터 IL(Intermediate Language, C# 코드가 컴파일되면 생성되는 중간 언어) 수준의 차이, 실전 함정까지 깊이 파고듭니다. 목차 스택과 힙 — 메모리 구조 이해 값..
AI 에이전트로 C# 개념 심화 블로그를 자동으로 만드는 방법 Unity 모바일 게임 클라이언트 신입 개발자를 위한 C# 개념 심화 콘텐츠를 AI 에이전트가 리서치부터 게시까지 자동으로 처리하는 워크플로우를 소개한다. 📋 목차 이 프로젝트가 해결하려는 문제 프로젝트 목표 전체 워크플로우 STEP 1 — 주제 선정 및 폴더 생성 STEP 2 — 리서치 및 result.md 작성 STEP 3 — 게시글 검토 및 교정 STEP 4~6 — 병렬 배포 최종 산출물 구조 사용하는 주요 도구 왜 이 구조인가 마무리 이 프로젝트가 해결하려는 문제 C#과 Unity를 배우는 신입 개발자에게는 두 가지 장벽이 있다. ..
https://www.youtube.com/watch?v=QRlz4-pAtpYhttps://www.youtube.com/watch?v=UsyvT36vqpULegacy와 URP의 차이- Legacy는 메인 스레드에서 게임 엔진 프레임워크로 오브젝트를 그리는 요청 (렌더)을 하거나 OnPrecull과 같은 후킹 기능을 통해 렌더 파이프라인에 요청을 하는 형태- URP에서는 렌더 파이프가 엔진안에서 외부로 나오게 되어 RenderContext를 직접 수정할 수 있게됨URP 란?- SPR (Scriptable Render Piple) 를 기반으로 한 렌더 파이프라인 템플릿- URP -> Renderer -> Pass, Pass... Pass 하나 하나가 독립적이고 실시간으로 패스 변경도 가능함URP의 장점1)..
Project-ML에서 SPUM을 통해 만들어진 캐릭터는 스프라이트 애니매이션을 통해 화면에 보여주고 있음Q. 스프라이트 아틀라스를 사용할 때와 사용하지 않을 때 어떤 차이가 있을것인가?.1. 이론- 스프라이트 아틀라스를 통해 스프라이트를 합칠 경우 메모리에 합쳐진 한 장의 스프라이트 이미지가 올라갈 것으로 예상- 현재 캐릭터는 Move / Attack / Idle / Die 4개의 애니매이션과, 각각 스프라이트 한 장씩 총 4장을 사용함2. 검증 방법2.1. 스프라이트 아틀라스를 사용할 때와 사용하지 않을 때 윈도우 환경으로 빌드 후 메모리 프로파일러 실행: 각 빌드는 Clean Build를 사용2.2. Unity Objects 를 비교한 결과 확인 3. 결론- 스프라이트 아틀라스를 사용할 경우 4M..
ML 초안에서 게임을 제작할 때 필요한 부분에 대해 기술적으로 필요한 부분을 고민했지만, 게임의 전체 프로세스에서 필요한 내용으로 프로토 버전에 반드시 필요한 시스템은 무엇일까에 대한 정리를 다시하고자 함.프로토 정의- 근본적으로 프로토 버전에서 검증이 필요한 것은 게임의 "재미" : 여기에는 기술적으로 데이터 시리얼 라이즈를 어떻게 할 것인가?. 게임의 기반 구조는 어떻게 잡을 것인가?에 등 기술적 고민보다는 빠르게 재미를 검증할 수 있는 최소한의 구현에 중점: 최소한의 구현은 게임의 핵심 시스템을 정의하고 핵심 시스템에 필요한 리소스, 데이터를 가져와서 로직을 구현하는 것: 벤치마크할 게임이 있다면 해당 게임을 예시로 사용하는 것이 좋음1) Resources에 필요한 리소스를 넣고, 프리팹의 링크를 ..
목표 - Unity 6 신규 기능 경험- C# 클라이언트/서버 구현 경험- 초기 버전부터 상용 서비스까지의 전체적인 개발과정 경험게임 컨셉- 로그라이크 / 머지- 2D Pixel게임 개발을 위해 고민이 필요한 것1. 데이터 직렬화1) 기획 데이터의 직렬화- 기획 데이터를 클라/서버가 사용할 때, 프로젝트에 따라서 데이터 처리가 다름: 기획 데이터는 현재까지 경험상 엑셀 외의 것을 사용하는 것을 경험한 적이 없음: 엑셀 데이터를 직렬화하는 포맷으로 json, csv, xml, message pack 을 사용했던 경험이 있음-> 데이터 직렬화를 위한 타입 정의를 어떻게 할것인가.-> 어떤 직렬화 라이브러리를 사용해서 엑셀 데이터를 파싱할 것인가에 대한 고민 필요2) 클라 서버 통신 시 어떤 직렬화 라이브러리..
* 특성 - Attribute 클래스는 미리 정의된 시스템 정보 또는 사용자가 정의한 정보를 대상 요소와 결합하여 메타데이터에 저장 - 메타 데이터에 저장된 정보를 런타임에서 참조하여 특별한 기능을 수행할 수 있음 - 모든 특성 형식은 Attribute 클래스에서 직간접적으로 파생됨 https://docs.microsoft.com/ko-kr/dotnet/api/system.attribute?view=netstandard-2.0 Attribute 클래스 (System) 사용자 지정 특성에 대한 기본 클래스를 나타냅니다. docs.microsoft.com - AttributeUsageAttribute는 다른 특성 클래스의 사용상의 제한 조건을 걸 수 있는 특성 클래스 - AttributeUsageAttrib..
Unity에서 빌드를 통해 나온 dll 파일을 디컴파일로 확인하면, 코드에서 확인할 수 없는 이슈를 확인할 수 있는 경우가 많다. foreach의 가비지 원인을 확인한다거나, sturct 를 interface로 가져올 때 박싱이 일어나는 이슈 등 동작원리를 좀 더 깊게 확인하기 위해 .DLL을 디컴파일해서 IL을 확인할 수 있다. .Net 디컴파일을 위해서 개인적으로 사용하는 툴은 JetBrains에 DotPeek을 사용한다. 아래의 주소에서 다운로드가 가능하고, 기능을 확인할 수 있다. https://www.jetbrains.com/ko-kr/decompiler/download/#section=web-installer 다운로드 dotPeek: JetBrains가 만든 무료 .NET 디컴파일러 www.j..
