일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 플러그인
- addressable
- Unity
- c#
- Strategy Pattern
- 디자인 패턴
- Abstract Factory Pattern
- ScriptableObject
- 1인 개발
- ReferenceEquals
- Zenject
- Boxing
- equals
- 인앱 결제
- Addressable System
- 스프라이트 아틀라스
- Post Processing
- Unboxing
- 최적화
- UniRx
- Reflection
- Android Plugin
- sprite atlas
- ==
- design pattern
- 포스트 프로세싱
- 게임 개발
- Today
- Total
목록게임 개발 (14)
One_KWS
보스 공격 패턴 구현 애니메이션 이벤트 추가 공격 애니메이션의 특정 타이밍에 패턴 공격을 실행시켜 주기 위해 각 애니메이션에 이벤트를 추가하였다. IAttackPattern 보스 몬스터의 공격 패턴은 아래와 같은 구조로 구현했다. 각 공격 패턴은 IAttackPattern이라는 Interface를 구현하고 있고 BossCombat 클래스에서 이 Interface를 통해 제어해 준다. (스트래티지 패턴을 이용했다.) IAttackPattern 인터페이스에는 IsAvailable 프로퍼티와 Perform() 함수가 있다. IsAvailable은 해당 공격 패턴을 사용할 수 있는지를 판단하기 위한 프로퍼티이고 Perform() 함수는 해당 공격 패턴을 실행시키는 함수이다. public interface IA..
캐릭터 및 애니메이션 캐릭터 & 무기 보스 몬스터로 아래 캐릭터를 사용했고 무기도 캐릭터에 맞게 골라 넣어 주었다. 애니메이션 일단 공격 패턴 먼저 구현하기 위해 공격 관련 부분의 애니메이션만 추가하였다. 총 3개의 패턴을 넣기 위해 공격 애니메이션도 각각 다른 3개의 애니메이션을 넣어주었다. 코드 구조 보스 몬스터의 이동 및 공격에 대한 구조는 일반 몬스터와 같다. 각 행동은 IBehaviour를 상속받고 있으며 BossController를 이용하여 제어해준다. BossController BossController는 보스 몬스터의 이동과 공격을 제어한다. 코드는 EnemyController와 유사하다. 현재는 공격에 대한 코드만 구현되어 있다. public class BossController : M..
생성된 몬스터를 다 잡으면 다음 구역으로 넘어갈 수 있다. 그래서 몬스터를 전부 잡으면 다음 층으로 넘어갈 수 있는 포탈을 활성화 시키고 플레이어를 다음 구역으로 이동시키는 기능을 구현했다. Portal 만들기 맵 한쪽에 다음 구역으로 갈 수 있는 문을 만들었다. 그냥 문만 놓으니 허전해서 문 양쪽에 횟불(?) 도 달아주었다. Portal 오브젝트를 만들고 Collider와 Rigidbody를 붙여서 플레이어가 문에 닿았을 경우에 처리할 수 있게 했고 문이 활성화 된 것처럼 보이도록 포탈 이펙트를 자식으로 추가했다. Portal 스크립트를 생성하여 Portal 오브젝트에 추가했다. OnTriggerEnter 함수에서 충돌한 오브젝트의 Tag가 Player일 경우에 OnPlayerEnter 델리게이트를 실..
여러 종류의 몬스터를 만들 때 매번 새로운 프리팹을 만들고 스크립트를 붙이고 하는 작업을 반복할 수 없기 때문에 중복 작업을 줄이기 위해 몬스터를 수정했다. (수정하면서 몬스터 종류도 추가했다.) Prefab Variant Enemy 프리팹에 공통으로 사용할 오브젝트만 남겨두고 삭제했다. Animator에는 기준이 될 AnimatorController를 넣었다. Create/Prefab Variant로 Demon과 Skeleton을 만들어주었다. 만들어진 Prefab Variant에 사용할 캐릭터와 무기를 넣어주었다. Animator Override Controller 몬스터 마다 다른 무기를 가지고 있기 때문에 각각의 무기에 따라 다른 애니메이션을 적용시켜주기 위해 기준이 되는 Enemy Animato..
매주 만나서 성과 공유하는 스터디를 하고 있는데 나의 경우에는 현재 만들고 있는 게임을 어느 정도 개발했는지 공유하고 있다. (다른 분은 게임이 아닌 앱 서비스를 개발하고 있다.) 매주 스마트 폰에 빌드를 해서 플레이하고 피드백을 받고 있는데 (피드백을 매우 잘 주신다. 다만 조금 매울 뿐..) 이번 일지부터는 개선한 내용도 같이 기록하려고 한다. 조이스틱 개선 플레이를 하다보면 손가락이 금방 피로해진다는 피드백이 있었다. 모바일 게임을 하다보면 조이스틱이 고정으로 있지 않고 터치한 곳을 기준으로 조이스틱이 따라오는데 내가 구현한 조이스틱은 한 위치에 고정되어 있어서 그런 것 같다. 터치한 위치로 조이스틱이 따라오도록 수정했다. 터치 영역 수정 아래와 같이 빈 공간에 터치가 되었을 때도 인식할 수 있도록..
몬스터를 잡아 아이템을 획득하고 이후 아이템으로 교환할 수 있도록 구현하려고 한다. 이번 일지에는 아이템을 획득하는 것까지 구현한 내용을 정리했다. 아이템 루팅 아이템 Item GameObject를 생성하고 Collider와 Rigidbody를 붙여주었다. 아이템에 둥둥 떠있는 모션을 넣기 위해 애니메이션을 추가하여 y축으로 올라갔다가 내려왔다가 하도록 구현했다. Item 스크립트를 생성하여 붙여주고 아래와 같이 코드를 작성했다. Target을 정해주면 해당 타겟을 따라가는 코드이다. 부드럽게 따라가도록 Vector3.SmoothDamp를 사용했다. (목표까지 일정한 속도로 움직이는 것이 아니라 속도가 점점 변하면서 목표 지점까지 이동한다.) public Transform Target { get; set..