✌️개요
유니티는 언리얼에 비해 기본 내장기능이 단순합니다
단순하기 때문에 더 쉽게 배울 수 있지만,
엔진에 익숙해지기 시작하면 부족한 기능들이 아쉽기 마련입니다
유니티 에셋스토어에는 프로젝트에 도움을 주는 수많은 에셋들이 있습니다
물론 너무 남용하면 프로젝트가 무거워지고 본인의 코드가 아니기 때문에
유지보수도 힘들어지겠지만,
적당한 사용은 생산성을 높여줍니다
이 글에서는
생산성을 높이고 프로젝트 관리나 개발에 도움을 주는
제가 프로젝트 시작 시 임포트 하고 시작하는 에셋들을 무료에셋으로만 정리해 봅니다
🔥본문
무료 에셋
1. DoTween
굉장히 유명한 에셋입니다
간단한 애니메이션을 코드로 짤 수 있습니다
특히 저는 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 Stats Monitor/Prefab` 경로에 있는
`[Graphy]`프리팹을 씬에 놓기만 하면 됩니다
그리고 인스펙터에서
필요 없는 정보를 끄거나
간소화하는 등 설정을 할 수 있습니다
모든 모드를 켰을 때 기준으로 아래 스크린샷과 같이 렌더링 됩니다
3. Log Viewer
이 에셋도 디버깅에 상당히 도움을 주는 에셋입니다
빌드에서 로그를 확인할 수 있습니다
빌드에서만 발생하는 버그를 찾을 때 도움이 많이 됩니다
UI도 유니티의 콘솔 뷰와 비슷하게 구성돼 있어서
보기 편합니다
사용법도 간단합니다
에디터에서 상당 메뉴에 `Reporter → Create`를 클릭하면 씬에 `Reporter` 오브젝트가 생성됩니다
인스펙터에서 설정할 수 있는 항목들은 아래와 같습니다
다른 건 필요 없고,
`Num Of Circle To Show`만 설정이 필요합니다
해당 변수에 설정된 숫자만큼 게임뷰에서 원을 터치 or 마우스로 그리면 디버그 UI가 켜집니다
켜졌을 때 UI는 아래와 같이 생겼습니다
`NullReference`같은 에러도 로그에 표시됩니다
`Num Of Circle To Show`설정 값은 2 이상으로 하시는 걸 추천합니다
1로 해두면 게임을 플레이하다가 UI가 켜져 버리는 경우가 생깁니다
4. Naughty Attributes
유니티 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
`Physics`의 `cast`류를 디버깅할 수 있게 시각적으로 보여주는 에셋입니다
임포트 이후, `Tools→BgTools → CastVisualizer`메뉴를 열어 설정할 수 있습니다
간단하게 On버튼을 누르면 그때부터 활성화됩니다
기본 컬러 사용 시
위 이미지처럼 출발점, 궤적은 파란색
충돌 지점은 빨간색으로 그려줍니다
사용 중에는 에디터의 퍼포먼스가 떨어질 수 있으니
디버깅이 필요할 때 만 사용하고 꺼놓는 게 좋습니다
6. Joystick Pack
아주 오랜 기간 유명한 에셋입니다
모바일에서 사용하는 터치 조이스틱이 구현돼 있는 에셋입니다
바로 사용할 수 있게 쉽게 작성돼 있고, 필요한 부분을 충분히 다 갖추고 있다는 장점이 있습니다
조이스틱 작동의 종류도 많습니다
고정된 위치에 항상 있는 `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 |