【Unity】Animator.SetBool(int id, bool value)について

Unity

Unityのアニメーションを制御するAnimatorを勉強していると、Animator.SetBool(int id, bool value)というメソッドが出てきた。

Animator.SetBool()と調べてみると第一引数がstring型のがよく出てくる。

Animator.SetBool(string name, bool value)

今回はこの2つの違いについて調べたことを書いていこうと思います。

SetBool()の役割

  • SetBool(string name,bool value)

第一引数にAnimatorのStateと同じ文字列を入れて第二引数をtrueにするとそのStateにスイッチできてアニメーションの切り替えができる。

Animator.SetBool("idle", true);

Animator.SetBool("diving", true);

SetBool()の役割はアニメーションを切り替えるためということになりますね。

  • SetBool(int id,bool value)

そうなると第一引数がint型になる方は一体何を表しているのか疑問です。

SetBool(int id,bool value)とは

調べたところ、第一引数のidにはstate名を数値変換して数値を入れるようです。

数値化するために以下のメソッドを使用します。

Animator.StringToHash(string name)

何故このような手間をかけるのかというと、どうやら処理の高速化が見込めるようです。

参考

Access Denied

まとめ

Unityの公式ではSetBool(int id,bool value)のほうはあまり情報がなく戸惑いましたが、処理の高速化ができるというのはアニメーションという重い処理と考えると魅力的ですね。自分でも組むときは利用してみたいと思います。それではまた次の記事でお会いしましょう!

コメント

タイトルとURLをコピーしました