본문 바로가기

게임 프로그래밍66

[유니티 활용] 비쥬얼 스크립팅 (Visual Scripting) 맛보기 이번 글에서는 유니티에서 제공하는 비쥬얼 스크립팅의 간단한 사용법에 대해 알아보도록 하겠습니다. 유니티 공식 홈페이지에서 정의한 비쥬얼 스크립팅이란 다음과 같습니다. "비주얼 스크립팅은 코드를 처음부터 작성할 필요 없이 그래픽을 기반으로 Unity의 오브젝트와 동작을 조작하는 방식입니다. 비주얼 노드를 함께 연결하여 로직을 구현하고, 아티스트와 디자이너, 프로그래머가 간단하게 게임플레이와 인터랙티브 시스템을 만들 수 있게 합니다." (https://unity.com/kr/features/unity-visual-scripting#create-scripting-logic-visually) 여기서는 간단히 큐브를 만들고 큐브의 회전을 Time.deltaTime 값을 곱하여 수행하는 것을 비쥬얼 스크립트로 작성.. 2023. 4. 28.
[유니티 활용] Animator 를 이용한 애니메이션 속도 조절 이번 글에서는 유니티 Animator 의 파라미터를 이용해 특정 애니메이션의 속도를 조절하는 법에 대해 알아보도록 하겠습니다. 특정 캐릭터의 공격 모션을 다음과 같이 만든다고 가정해 봅니다. 공격 시작부터 실제 공격하기전까지의 준비 동작은 느리게 진행 공격 준비 동작이 끝나고 실제 공격은 빠르게 이루어짐 애니메이션을 직접 제작한다면 처음부터 위의 특성을 고려해 만들면 됩니다. 하지만 직접 만든 게 아닌 경우에는 어떻게 해야 할까요? 다행히 유니티는 Animator 에서 파라미터를 지원해주고 이를 애니메이션에 적용할 수 있는 방법을 제공해 줍니다. 지금부터 이것을 활용해서 위에선 언급한 공격 모션의 속도를 조절하는 방법에 대해 알아보도록 하겠습니다. ▶ 슬라임 애니메이터 설정 이번 글에서도 제가 예제로 많.. 2023. 4. 26.
[유니티 활용] 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.
Scene 도구 - 그리드와 스냅 (Grid and Snap) 유니티의 Scene 에 오브젝트를 배치할 때 일정 간격으로 배치하거나 정렬이 필요한 경우가 생각보다 많이 있습니다. 유니티는 이와 같은 작업을 편리하게 수행할 수 있도록 도구를 제공해 주고 있습니다. 이 글에서는 각 도구의 사용법에 대해 자세히 알아보도록 하겠습니다. ▶ 도구 위치 도구는 Scene 창의 다음과 같은 위치에 있습니다. 왼쪽부터 차례대로 Grid Visual, Grid Snapping, Increment Snapping 도구 입니다. ▶ Grid Visual Grid Visual 도구는 말 그대로 그리드를 어떻게 보이게 할 것인지에 대한 옵션을 설정할 수 있습니다. 아래 화살표를 클릭하면 다음과 같은 팝업이 나타납니다. Grid Plane : 그리드를 표시할 축을 결정합니다. Opacity.. 2023. 2. 1.
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.