본문 바로가기

게임 프로그래밍/유니티 활용37

[유니티 활용] ScriptableObject 를 이용한 Item Drop Table 만들기 이번 글에서는 몬스터 사냥, 상자 열기, 스테이지 클리어 보상 등 거의 모든 게임에서 필요한 아이템 드랍을 ScriptableObject 를 이용해 구현하는 방법에 대해 알아보도록 하겠습니다. ▶ Item 정의 ScriptableObject 를 이용해 다음과 같이 Item 정보를 정의해 줍니다. using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu] public class SOItem : ScriptableObject { public string itemName; public int level; [System.Serializable] public struct STAT { public st.. 2023. 4. 25.
[유니티 활용] ScriptableObject를 이용한 Data 관리 예제 - 몬스터 ScriptableObject 는 데이터 관리 측면에서 굉장히 유용하게 사용할 수 있습니다. 이 글에서는 ScriptableObject 를 이용해 몬스터를 정의하고 객체를 만드는 방법에 대한 예제를 다뤄보도록 하겠습니다. ▶ 몬스터 ScriptableObject 작성 몬스터의 기본적인 속성과 관련된 정보는 다음과 같이 만들 수 있습니다. using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu] public class SOMonster : ScriptableObject { public int str; // strenth / 힘 public int dex; // dexterity / 민첩 pu.. 2023. 4. 24.
Coroutine 과 UniTask 비교 예제 UniTask 는 async 와 await 를 유니티에서 더 사용하기 편리하도록 만든 통합 패키지입니다. UniTask 는 Coroutine 에 비해 메모리 사용량, 성능, try-catch 사용 가능 및 return 을 사용할 수 있어서 Coroutine 대신 UniTask 를 이용하도록 권장하고 있는 상황입니다. 이 글에서는 같은 기능을 Coroutine 과 UniTask 를 이용해 각각 구현할 때 어떤 차이가 있는지에 대해서 알아보도록 하겠습니다. ▶ 설치 UniTask 는 기본으로 지원되는 기능이 아니기 때문에 Package Manager 를 이용해 설치해 줘야 합니다. Package Manager 를 실행하고 위와 같이 [Add package from git URL...] 을 선택하고 나타나는 .. 2023. 1. 21.
[유니티 활용] ParticleSystem 으로 초간단 총알 패턴 만들기 유니티에서 Particle System 은 폭발, 모닥불, 번개 및 각종 마법 등 여러 효과를 만드는데 아주 유용하게 사용되는 기능입니다. 이 글에서는 Particle System 을 이용하여 탄막 슈팅게임에서 볼 수 있는 탄막 효과를 아주 간단하게 만드는 방법에 대해서 알아보도록 하겠습니다. ▶ 공통 Particle System 의 Transform 의 Position 과 Rotation 은 모두 0으로 설정하고 Start Size 는 0.2로 합니다. ▶ 단방향 발사 총알을 한 방향으로 주기적으로 발사합니다. ParticleSystem 의 Emission 과 Shape 을 다음과 같이 설정합니다. ● 발사 주기조절: Emission의 Rate over Time 값 변경 ● 방향: Shape의 Roat.. 2023. 1. 18.
[유니티 활용] 액션 RPG 스타일의 실시간 전투 구현하기 지금까지 캐릭터의 이동과 몬스터의 AI 및 각 상황에 맞는 애니메이션을 적용하는 방법에 대해 알아보았습니다. [유니티 활용] StateMachine 을 활용한 3D 몬스터 AI 구현 아래에 링크한 이전 글에서는 유니티에서 제공하는 NavMeshAgent 를 이용해 몬스터가 플레이어를 따라다니도록 했습니다. 이번 글에서는 한단계 더 나아가서 처음엔 가만히 있다가 플레이어가 근 ugames.tistory.com 위의 작업 내용을 토대로 액션 RPG 스타일의 실시간 근접 전투를 구현하는 방법에 대해 알아보도록 하겠습니다. 현 시점까지 구현한 내용은 위에 링크한 글로 이동하시면 아래쪽에 unitypackage 다운로드와 필수 에셋 링크가 있으니 다운로드 받아 사용하시면 됩니다. ▶ 플레이어 공격 만들기 게임에서.. 2023. 1. 14.
[유니티 활용] StateMachine 을 활용한 3D 몬스터 AI 구현 아래에 링크한 이전 글에서는 유니티에서 제공하는 NavMeshAgent 를 이용해 몬스터가 플레이어를 따라다니도록 했습니다. 이번 글에서는 한단계 더 나아가서 처음엔 가만히 있다가 플레이어가 근처에 오면 따라가고 공격 범위안에 들어오면 공격을 하고 다시 멀어지면 다시 따라가다가 더 멀어지면 추적을 포기하고 그 자리에 가만히 있는 몬스터의 AI 를 만들어 보도록 하겠습니다. [유니티 활용] NavMeshAgent 사용법 (Simple Monster AI) NavMeshAgent 는 유니티에서 제공하는 네비게이션 시스템입니다. 이 기능을 이용해 몬스터 객체가 플레이어 캐릭터를 자동으로 따라다니 게 하는 방법에 대해 알아보도록 하겠습니다. 플레이어 캐 ugames.tistory.com * 이전 포스팅 하단에서.. 2023. 1. 12.