StringToHash란?
정리 : StringToHash 란, 유니티 엔진에서 우리가 Animator Controller의 Parameters에 접근할 수 있게 도와주는 Animator 클래스의 멤버입니다.
다음과 같은 순서로 포스팅하겠습니다.
1. Animator Controller에서 Parameter 생성.
2. 생성한 Parameter를 C# Script로 제어.
1. Animator Controller에서 Parameter 생성.
2. 생성한 Parameter를 C# Script로 제어.
1) Animator Controller에서 Parameter 생성하는 방법
project 뷰 → Create → Animatior Controller 순으로 클릭을 하게 되면, 아래와 같은 Animator Controller 가 생성됩니다.
project 뷰 → Create → Animatior Controller 순으로 클릭을 하게 되면, 아래와 같은 Animator Controller 가 생성됩니다.
더블클릭하면, Scene 뷰 옆에 Animator 뷰가 나타납니다.
Parameters 아래 Name으로 parameter를 검색할 수 있는 탭이 있습니다. 이 탭의 오른쪽의 +를 클릭하면, Float, Int, Bool, Trigger 이상 4가지의 parameter를 생성할 수 있습니다.
Parameters 아래 Name으로 parameter를 검색할 수 있는 탭이 있습니다. 이 탭의 오른쪽의 +를 클릭하면, Float, Int, Bool, Trigger 이상 4가지의 parameter를 생성할 수 있습니다.
여기서 Trigger 형식의 Roll 파라미터를 생성합니다.
2) 생성한 Parameter를 C# Script로 제어하는 방법아래는 앞서 생성했던 파라미터를 제어할 스크립트 예시입니다.
using System.Collections; using System.Collections.Generic; using UnityEngine; public class NewAnimController : MonoBehaviour { // Animator Component를 저장할 animator 변수 생성. private Animator animator; // Roll 이라는 문자열(string)을 hash값으로 변경하는 코드. // StringToHash로, Roll이라는 string을, int로 변경한 후 hashRoll에 저장. private readonly int hashRoll = Animator.StringToHash("Roll"); private void Start() { animator.GetComponent(); } // Rolling 함수에서 앞서 생성한 Roll 이라는 이름의 parameter를 제어할 수 있음. void Rolling() { // 아래 코드로 Trigger 형식의 Roll 파라미터를 set 한다. animator.SetTrigger(hashRoll); } }
코드를 정리하면,
1. 문자열인 "Roll"을 해시값으로 변경해 저장합니다.
→ private readonly int hashRoll = Animator.StringToHash("Roll")
2. animator 변수에, 게임 오브젝트의 컴포넌트를 추출 및 저장합니다.
→ animator.GetComponent<Animator>();
3. 변경한 해시값을 사용하여 Set Trigger.
→ animator.SetTrigger(hashRoll);
이상으로 포스팅을 마치겠습니다.
댓글
댓글 쓰기