하나의 오브젝트에 다양한 베리에이션이 필요할 때 인스턴스를 생성하지 않고 드로우콜을 절약하는 방법에 대해 소개하겠습니다.
블루프린트를 사용하면 하나의 메테리얼로도 다양한 베리에이션을 만들 수 있습니다. 또한 아티스트 작업자가 레벨디자인할 때 디테일패널에서 직관적으로 수정할 수 있는 기능도 같이 추가할 수 있습니다.
블루프린트 클래스 엑터를 생성하고 베리에이션을 적용하고 싶은 오브젝트를 불러옵니다.
Construction script에서 로직을 구성합니다.
Switch to int
를 사용한다면 힌트를 포함할 수 없이 정수로만 기록되서 협업간에 무슨 용도인지 알 수 있는 직관성이 떨어지는한계를 가지고 있다.
Switch to string
을 사용한다면 가령 자료형 변수가 오타가 나도 컴파일오류가 나지 않고, Defalut로 처리돼서 디버깅만으로 버그를 인식할 수 없어 문제를 찾고 고치는데 상당한 시간이 걸릴 수 있는 단점이 있습니다.
이 둘을 보완할 수 있는 좋은 방법은 Enum(열거형)
으로 만드는 것 입니다.
열거형은 자료형 데이터를 담아둔 컨테이너박스입니다
만들어둔 열거형을 그래프에서 변수로 불러옵니다
열거형은 특히 분기점에서 이점이 부각됩니다.
Topdown방식으로 정보가 포함된 분기점을 선택하면 되니 직관적이고, 오타같은 실수를 범할 걱정도 없어집니다.
예제와 같이 하나의 함수를 가지고 데이터테이블을 만들고 싶다면 분기점보단 데이터 Select
방식을 사용하길 권장합니다.
즉 하나의 함수Set Vector parameter value ...
를 가지고 분기점을 나누는게 비효율적인 이유는 분기점이 많이 사용될수록 로직이 복잡해보일 수 있어 혼란을 야기합니다.
그래서 열거형 변수를 Select
index입력핀에 연결하면 보다 깔끔한 로직을 만들 수 있습니다