✌️개요
유니티는 언리얼에 비해 기본 내장기능이 단순합니다
단순하기 때문에 더 쉽게 배울 수 있지만,
엔진에 익숙해지기 시작하면 부족한 기능들이 아쉽기 마련입니다
유니티 에셋스토어에는 프로젝트에 도움을 주는 수많은 에셋들이 있습니다
물론 너무 남용하면 프로젝트가 무거워지고 본인의 코드가 아니기 때문에
유지보수도 힘들어지겠지만,
적당한 사용은 생산성을 높여줍니다
이 글에서는
생산성을 높이고 프로젝트 관리나 개발에 도움을 주는
제가 프로젝트 시작 시 임포트 하고 시작하는 에셋들을 무료에셋으로만 정리해 봅니다
🔥본문
무료 에셋
1. DoTween
DOTween (HOTween v2) | 애니메이션 도구 | Unity Asset Store
Use the DOTween (HOTween v2) tool from Demigiant on your next project. Find this & more animation tools on the Unity Asset Store.
assetstore.unity.com
굉장히 유명한 에셋입니다
간단한 애니메이션을 코드로 짤 수 있습니다
특히 저는 UI에 애니메이션이 필요하면 이 DoTween으로 다 해결하는 편입니다
DoTween함수 사용을 위해서는
`using DG.Tweening;` 지시문을 선언해야 합니다
간단한 사용 예로
UI에서 검은색 배경이미지를 페이드 아웃 애니메이션 처리 하고 싶다면
아래와 같이 사용합니다
private void FadeOut()
{
img.DOFade(endValue: 1f, duration: 2f);
}
이렇게 사용하면 2초에 걸쳐 `img`의 컬러 알파가 현재 값에서 1까지 트랜지션 하게 됩니다
좀 더 숙달이 되면 `.SetEase()`로 애니메이션 그래프 효과를 줄 수 있고,
`Sequence`로 더 복잡한 애니메이션을 코드로 작업할 수 있습니다
다만,
너무 복잡한 애니메이션을 DoTween으로 처리하면
협업자 입장에서는 코드를 읽기 힘들 수 있습니다
DoTween으로 충분히 구현할 수 있지만 코드가 너무 난해 해질 것 같다면
그냥 유니티 애니메이션으로 구현하는 게 나을 수 있습니다
2. Graphy
[Graphy] - Ultimate FPS Counter - Stats Monitor & Debugger | GUI 도구 | Unity Asset Store
Use the [Graphy] - Ultimate FPS Counter - Stats Monitor & Debugger from Tayx on your next project. Find this GUI tool & more on the Unity Asset Store.
assetstore.unity.com
디버깅 시 퍼포먼스 사용량을 시각적으로 보여주는 에셋입니다
특히 메모리 사용량을 모니터링할 때 유용합니다
사용법은 간단합니다
`Graphy - Ultimate Stats Monitor/Prefab` 경로에 있는
`[Graphy]`프리팹을 씬에 놓기만 하면 됩니다
그리고 인스펙터에서
필요 없는 정보를 끄거나
간소화하는 등 설정을 할 수 있습니다
모든 모드를 켰을 때 기준으로 아래 스크린샷과 같이 렌더링 됩니다
3. Log Viewer
Log Viewer | 기능 통합 | Unity Asset Store
Use the Log Viewer from dreammakersgroup on your next project. Find this integration tool & more on the Unity Asset Store.
assetstore.unity.com
이 에셋도 디버깅에 상당히 도움을 주는 에셋입니다
빌드에서 로그를 확인할 수 있습니다
빌드에서만 발생하는 버그를 찾을 때 도움이 많이 됩니다
UI도 유니티의 콘솔 뷰와 비슷하게 구성돼 있어서
보기 편합니다
사용법도 간단합니다
에디터에서 상당 메뉴에 `Reporter → Create`를 클릭하면 씬에 `Reporter` 오브젝트가 생성됩니다
인스펙터에서 설정할 수 있는 항목들은 아래와 같습니다
다른 건 필요 없고,
`Num Of Circle To Show`만 설정이 필요합니다
해당 변수에 설정된 숫자만큼 게임뷰에서 원을 터치 or 마우스로 그리면 디버그 UI가 켜집니다
켜졌을 때 UI는 아래와 같이 생겼습니다
`NullReference`같은 에러도 로그에 표시됩니다
`Num Of Circle To Show`설정 값은 2 이상으로 하시는 걸 추천합니다
1로 해두면 게임을 플레이하다가 UI가 켜져 버리는 경우가 생깁니다
4. Naughty Attributes
NaughtyAttributes | 유틸리티 도구 | Unity Asset Store
Use the NaughtyAttributes from Denis Rizov on your next project. Find this utility tool & more on the Unity Asset Store.
assetstore.unity.com
유니티 2022 버전 이상에서는 작동하지 않는 것으로 보입니다
무료에셋이라 업데이트가 있을지는 모르겠지만 2022 버전 이상에서는 다른 대안을 찾아야 할 것 같습니다
다음에 소개할 유료 에셋인 Odin Inspector 에셋의 하위호환 격인 무료 에셋입니다
인스펙터에 보여지는 속성들을 좀 더 보기 쉽게 만들 수 있도록 도와줍니다
코드에서 사용하려면 `using NaughtyAttributes;` 지시문을 선언해야 합니다
가장 많이 애용했던 건 `[Button] [HorizontalLine] [Expandable]` 이 3가지 속성입니다
1. `[Button]`
먼저 `[Button]` 속성은
함수를 에디터에서 실행가능한 버튼 UI로 인스펙터에 만들어줍니다
예를 들어 아래와 같이 작성된 코드가 있다면
[Button]
public void PrintLog()
{
Debug.Log("Hello World !!");
}
이렇게 버튼 UI가 인스펙터에 생깁니다
에디터가 플레이 상태가 아닐 때에도 버튼을 클릭하면 함수가 실행됩니다
제가 주로 사용한 경우는
인스펙터에 리스트 변수에 뭔가를 정리해야 하는 노가다성 업무를 할 때
코드로 정렬하는 코드를 짜고 버튼을 만들어서 실행하는 방법으로 활용했습니다
2. `[HorizontalLine]`
카테고리를 구분해야 할 때 아주 좋습니다
아래와 같이 변수를 선언했을 때
[Header("카테고리")]
[HorizontalLine]
public int a = 1;
[HorizontalLine(color: EColor.Red)]
public float b = 2f;
[HorizontalLine(color: EColor.Blue)]
public string c = "hihi";
아래처럼 보입니다
참고로 [Header]는 유니티의 기본 속성입니다
3. [Expandable]
`ScriptableObject` 타입을 변수로 참조할 때
인스펙터에서 해당 오브젝트를 펼쳐서 내용을 수정할 수 있게 해 줍니다
예를 들어
이런 `ScriptableObject`가 있다고 쳤을 때
public class ScriptableObjectExample : ScriptableObject
{
public int data1 = 33;
public float data2 = 50.0f;
public string data3 = "예시 데이터";
}
참조에 `[Expandable]`을 추가하면
public class AssetTest : MonoBehaviour
{
[Expandable]
public ScriptableObjectExample example;
[Button]
public void PrintLog()
{
Debug.Log("Hello World !!");
}
}
이렇게 `AssetTest`컴포넌트의 인스펙터에서 데이터를 바로 펼쳐서 편집할 수 있습니다
5. Cast Visualizer
Cast Visualizer | 유틸리티 도구 | Unity Asset Store
Use the Cast Visualizer from BG Tools on your next project. Find this utility tool & more on the Unity Asset Store.
assetstore.unity.com
`Physics`의 `cast`류를 디버깅할 수 있게 시각적으로 보여주는 에셋입니다
임포트 이후, `Tools→BgTools → CastVisualizer`메뉴를 열어 설정할 수 있습니다
간단하게 On버튼을 누르면 그때부터 활성화됩니다
기본 컬러 사용 시
위 이미지처럼 출발점, 궤적은 파란색
충돌 지점은 빨간색으로 그려줍니다
사용 중에는 에디터의 퍼포먼스가 떨어질 수 있으니
디버깅이 필요할 때 만 사용하고 꺼놓는 게 좋습니다
6. Joystick Pack
Joystick Pack | 입출력 관리 | Unity Asset Store
Get the Joystick Pack package from Fenerax Studios and speed up your game development process. Find this & other 입출력 관리 options on the Unity Asset Store.
assetstore.unity.com
아주 오랜 기간 유명한 에셋입니다
모바일에서 사용하는 터치 조이스틱이 구현돼 있는 에셋입니다
바로 사용할 수 있게 쉽게 작성돼 있고, 필요한 부분을 충분히 다 갖추고 있다는 장점이 있습니다
조이스틱 작동의 종류도 많습니다
고정된 위치에 항상 있는 `Fixed`타입
평소엔 안 보이고 터치 위치에 나타나는 `Float`타입
현재 터치위치를 계속 따라오는 `Dynamic`타입
크게 이렇게 3가지가 있고,
입력받을 축도
`Horizontal, Vertical, Both` 3종을 선택할 수 있습니다
입력받고 있는 인풋은
조이스틱 클래스의 `public` 프로퍼티인 `Direction`으로 쉽게 받아올 수 있습니다
public Joystick joystick;
private void GetDirection()
{
Vector2 inputDir = joystick.Direction;
}
모바일 플랫폼 한정 프로젝트 초기 빠른 프로토타이핑을 도와주는 고마운 에셋입니다
🍎결론
이렇게
제가 즐겨 쓰는 생산성 도구 무료 에셋들을 정리해 봤습니다
다음에는 유료 에셋들도 한번 정리해 보겠습니다
'Unity > Tips' 카테고리의 다른 글
[Unity] 어드레서블 Simplify Addressable Names 커스텀 (0) | 2024.12.16 |
---|---|
[Unity] 동적 다운로드한 이미지 에셋 수동으로 메모리에서 내리기 (0) | 2024.03.20 |
[Unity 최적화] Dynamic Resolution을 적용해보자! (0) | 2023.08.02 |
[Unity] 유니티 에디터 OpenGL/Vulkan 그래픽스API로 열기 (0) | 2023.08.02 |
[Unity] Adressable에셋 코드로 링크(인스펙터 등록)하기 (0) | 2023.06.24 |