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");
}
}