【Unity】API : Animator.StringToHash 字符串到哈希

来源:互联网 发布:通联数据的量化平台 编辑:程序博客网 时间:2024/06/14 11:59

public static int StringToHash(string name);

Parameters 参数

name The string to convert to Id.
该字符串转换到ID

Description 描述

Generates an parameter id from a string.
从字符串生成一个参数ID。
Ids are used for optimized setters and getters on parameters.
ID是用于参数的存取器优化(setters 和 getters)。

当使用Animator时,如果要引用某个状态或者参数,有两种方法。
1:通过字符串名称
2:通过整数“Hash ID”
通过“Hash ID”更有优势,因为不容易出错,且更加高效。
两种的使用方式不同。animation状态或者parameters的字符串(Tag)需要通过对象使用;但是“Hash ID”不需要,他是Animator的静态方法

由于这些参数会经常使用,将它们放在同一个脚本中,统一得到,统一管理,方便使用。

例如:官方案例–Stealth中

public class DoneHashIDs : MonoBehaviour{    // Here we store the hash tags for various strings used in our animators.    public int dyingState;    public int locomotionState;    public int shoutState;    public int deadBool;    public int speedFloat;    public int sneakingBool;    public int shoutingBool;    public int playerInSightBool;    public int shotFloat;    public int aimWeightFloat;    public int angularSpeedFloat;    public int openBool;    void Awake ()    {        dyingState = Animator.StringToHash("Base Layer.Dying");        locomotionState = Animator.StringToHash("Base Layer.Locomotion");        shoutState = Animator.StringToHash("Shouting.Shout");        deadBool = Animator.StringToHash("Dead");        speedFloat = Animator.StringToHash("Speed");        sneakingBool = Animator.StringToHash("Sneaking");        shoutingBool = Animator.StringToHash("Shouting");        playerInSightBool = Animator.StringToHash("PlayerInSight");        shotFloat = Animator.StringToHash("Shot");        aimWeightFloat = Animator.StringToHash("AimWeight");        angularSpeedFloat = Animator.StringToHash("AngularSpeed");        openBool = Animator.StringToHash("Open");    }}
原创粉丝点击