일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프라이트 아틀라스
- Strategy Pattern
- 포스트 프로세싱
- 인앱 결제
- Abstract Factory Pattern
- c#
- 플러그인
- ==
- ReferenceEquals
- equals
- 게임 개발
- Unity
- Zenject
- 디자인 패턴
- UniRx
- 최적화
- Android Plugin
- Unboxing
- design pattern
- Boxing
- Addressable System
- sprite atlas
- ScriptableObject
- Reflection
- addressable
- 1인 개발
- Post Processing
- Today
- Total
목록c# (25)
One_KWS
생성된 몬스터를 다 잡으면 다음 구역으로 넘어갈 수 있다. 그래서 몬스터를 전부 잡으면 다음 층으로 넘어갈 수 있는 포탈을 활성화 시키고 플레이어를 다음 구역으로 이동시키는 기능을 구현했다. Portal 만들기 맵 한쪽에 다음 구역으로 갈 수 있는 문을 만들었다. 그냥 문만 놓으니 허전해서 문 양쪽에 횟불(?) 도 달아주었다. Portal 오브젝트를 만들고 Collider와 Rigidbody를 붙여서 플레이어가 문에 닿았을 경우에 처리할 수 있게 했고 문이 활성화 된 것처럼 보이도록 포탈 이펙트를 자식으로 추가했다. Portal 스크립트를 생성하여 Portal 오브젝트에 추가했다. OnTriggerEnter 함수에서 충돌한 오브젝트의 Tag가 Player일 경우에 OnPlayerEnter 델리게이트를 실..
Mono Mono는 Unity에서 기본적으로 사용되는 스크립팅 런타임이다. .NET Framework의 경우 마이크로소프트에서 개발한 소프트웨어 프레임워크로 윈도우 외의 플랫폼은 지원하지 않는다. 반면에 Mono는 오픈소스 프로젝트로, 리눅스, macOS, iOS, 안드로이드 등 다양한 운영체제에서 실행될 수 있다. Mono는 .NET Framework과 유사한 구조를 가지고 있으며, C# 스크립트를 IL 코드로 변환하고, JIT(Just-In-Time) 컴파일러를 사용하여 IL 코드를 실행한다. Mono는 다양한 플랫폼에서 실행할 수 있고 빌드가 빠르다는 장점이 있지만 코드 난독화 및 보호 솔루션이 없을 경우 DLL 파일을 통해 쉽게 디컴파일이 가능하여 보안에 취약하다는 단점이 있다. IL2CPP IL..
CLR (Common Language Runtime) CLR은 NET Framework에서 실행되는 어플리케이션의 실행 환경을 제공하고 다양한 언어로 작성된 코드를 관리하고 실행할 수 있도록 한다. .NET 언어로 작성된 코드를 실행하기 위해 IL(Intermediate Language)로 컴파일하고 JIT(just-in-time) 컴파일러를 사용하여 IL을 기계어로 변환한다. CLR에는 여러가지 기능들이 있다. 메모리 관리: 객체의 메모리 할당과 해제를 자동으로 처리하기 때문에 개발자가 수동으로 메모리 관리를 하지 않아도 된다. 코드 실행: .NET 언어로 작성된 코드를 IL로 컴파일하여 실행 가능한 형태로 만든다. IL은 JIT 컴파일러에 의해 실행 코드로 변환된다. 예외 처리: 코드에서 발생하는 예..
여러 종류의 몬스터를 만들 때 매번 새로운 프리팹을 만들고 스크립트를 붙이고 하는 작업을 반복할 수 없기 때문에 중복 작업을 줄이기 위해 몬스터를 수정했다. (수정하면서 몬스터 종류도 추가했다.) Prefab Variant Enemy 프리팹에 공통으로 사용할 오브젝트만 남겨두고 삭제했다. Animator에는 기준이 될 AnimatorController를 넣었다. Create/Prefab Variant로 Demon과 Skeleton을 만들어주었다. 만들어진 Prefab Variant에 사용할 캐릭터와 무기를 넣어주었다. Animator Override Controller 몬스터 마다 다른 무기를 가지고 있기 때문에 각각의 무기에 따라 다른 애니메이션을 적용시켜주기 위해 기준이 되는 Enemy Animato..
Zenject 소개 Zenject 란 ? Zenject는 Unity를 위한 DI(Dependency Injection : 의존성 주입) 프레임워크이다. Github https://github.com/modesttree/Zenject Asset Store https://assetstore.unity.com/packages/tools/utilities/extenject-dependency-injection-ioc-157735 의존성 주입(Dependency Injection : DI) 의존성 주입이란 객체 간의 의존성을 클래스 외부에서 주입하는 것을 말한다. 인터페이스를 사이에 둠으로서 클래스 레벨에서는 의존관계가 고정되지 않도록 하고 런타임시에 동적으로 주입하여 유연성을 확보하고 결합도를 낮출수 있게 해준..
UniRx 소개 UniRx ? Unity에서 Reactive Programming을 쉽게 구현할 수 있게 만든 라이브러리이다. .NET에도 Rx 라이브러리가 있지만 Unity에 최적화되어 있지 않다. UniRx는 Unity에 최적화되어 만들어졌다. Github https://github.com/neuecc/UniRx Reactive Programming 데이터 또는 이벤트의 변경이 발생하면 이에 반응해 처리하는 프로그래밍 기법이다. UniRx의 장점 일반적으로 유니티의 네트워크 운영은 WWW와 코루틴을 사용해야 한다. 그렇지만 아래와 같은 이유로 코루틴을 사용하는 것은 비동기 연산에 좋은 방법이 아니다 코루틴은 다른 값을 반환할 수 없고 오직 IEnumerator를 반환해야 한다. 코루틴은 예외 처리를 ..