일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 최적화
- Unity
- 포스트 프로세싱
- addressable
- 인앱 결제
- sprite atlas
- Zenject
- 게임 개발
- Addressable System
- c#
- Strategy Pattern
- 1인 개발
- Unboxing
- equals
- Post Processing
- ==
- 디자인 패턴
- UniRx
- 플러그인
- ReferenceEquals
- design pattern
- Abstract Factory Pattern
- Boxing
- ScriptableObject
- Reflection
- Android Plugin
- 스프라이트 아틀라스
- Today
- Total
목록Unity (27)
One_KWS
안드로이드 프로젝트 생성 안드로이드 플러그인을 만들기 위해 Android Studio 프로젝트를 생성한다. Empty Activity로 생성하고 Minimum SDK는 Unity Build Setting과 맞춰주었다. Module 생성 프로젝트를 만들었으면 File - New - New Module로 Module을 생성한다. classes.jar 추가 다음으로 아래 위치에서 classes.jar 파일을 복사한다. Window : C:\Program Files\Unity\Hub\Editor\(사용하고 있는 유니티 버전)\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp/Release\Classes Mac : Applications/Unity/Play..
보스 공격 패턴 구현 애니메이션 이벤트 추가 공격 애니메이션의 특정 타이밍에 패턴 공격을 실행시켜 주기 위해 각 애니메이션에 이벤트를 추가하였다. IAttackPattern 보스 몬스터의 공격 패턴은 아래와 같은 구조로 구현했다. 각 공격 패턴은 IAttackPattern이라는 Interface를 구현하고 있고 BossCombat 클래스에서 이 Interface를 통해 제어해 준다. (스트래티지 패턴을 이용했다.) IAttackPattern 인터페이스에는 IsAvailable 프로퍼티와 Perform() 함수가 있다. IsAvailable은 해당 공격 패턴을 사용할 수 있는지를 판단하기 위한 프로퍼티이고 Perform() 함수는 해당 공격 패턴을 실행시키는 함수이다. public interface IA..
캐릭터 및 애니메이션 캐릭터 & 무기 보스 몬스터로 아래 캐릭터를 사용했고 무기도 캐릭터에 맞게 골라 넣어 주었다. 애니메이션 일단 공격 패턴 먼저 구현하기 위해 공격 관련 부분의 애니메이션만 추가하였다. 총 3개의 패턴을 넣기 위해 공격 애니메이션도 각각 다른 3개의 애니메이션을 넣어주었다. 코드 구조 보스 몬스터의 이동 및 공격에 대한 구조는 일반 몬스터와 같다. 각 행동은 IBehaviour를 상속받고 있으며 BossController를 이용하여 제어해준다. BossController BossController는 보스 몬스터의 이동과 공격을 제어한다. 코드는 EnemyController와 유사하다. 현재는 공격에 대한 코드만 구현되어 있다. public class BossController : M..
스프라이트 아틀라스(Sprite Atlas)를 사용하면 여러 개의 텍스처를 단일 텍스처로 합칠 수 있다. 여러 개의 텍스처를 호출할 경우 드로우 콜이 텍스처의 개수만큼 발생하게 되어 성능 저하가 일어날 수 있다. 스프라이트 아틀라스를 사용하면 드로우 콜을 줄일 수 있다. Sprite Atlas 설정 Edit - Project Settings - Editor에서 Sprite Packer - Mode를 Sprite Atlas V1 - Always Enabled로 변경한다. Sprite Atlas 만들기 Create → 2D → Sprite Atlas를 선택하여 Sprite Atlas를 생성한다. 생성된 스프라이트 아틀라스의 Inpector 창의 하단에 있는 Objects for Packing에 스프라이트를..
에셋 파이프라인은 애플리케이션의 성능에 큰 영향을 미칠 수 있다. 에셋의 설정에 따라 빌드 크기 및 시간을 증가시키고 메모리 사용량에 영향을 미칠 수 있다. Texture Max Size 해당 Texture가 가질 수 있는 최대 크기이다. Max Size 값이 작으면 Texture의 품질이 낮아지지만, 메모리 사용량이 줄어들고 더 빠르게 로드된다. 반면, Max Size 값이 크면 Texture의 품질은 높아지지만, 더 많은 메모리를 사용하게 되고 로드 시간이 늘어난다. 모바일에서는 보통 Texture의 Max Size를 2048 또는 1024로 설정한다. Power Of Two (POT) Texture Compression이 ETC 또는 PVRCT일 경우 POT 텍스처를 사용해야 압축이 된다. POT ..
생성된 몬스터를 다 잡으면 다음 구역으로 넘어갈 수 있다. 그래서 몬스터를 전부 잡으면 다음 층으로 넘어갈 수 있는 포탈을 활성화 시키고 플레이어를 다음 구역으로 이동시키는 기능을 구현했다. Portal 만들기 맵 한쪽에 다음 구역으로 갈 수 있는 문을 만들었다. 그냥 문만 놓으니 허전해서 문 양쪽에 횟불(?) 도 달아주었다. Portal 오브젝트를 만들고 Collider와 Rigidbody를 붙여서 플레이어가 문에 닿았을 경우에 처리할 수 있게 했고 문이 활성화 된 것처럼 보이도록 포탈 이펙트를 자식으로 추가했다. Portal 스크립트를 생성하여 Portal 오브젝트에 추가했다. OnTriggerEnter 함수에서 충돌한 오브젝트의 Tag가 Player일 경우에 OnPlayerEnter 델리게이트를 실..