Unity Animator.StringToHash-----哈希

之前在做动画处理的时候一直用的是字符串,最近看案例的时候发现了Animator.StringToHash-----通过Hash ID进行引用,Animator.StringToHash把字符串转换成Hash ID。通过“Hash ID”更有优势,因为不容易出错,且更加高效。

两种的使用方式不同。animation状态或者parameters的字符串(Tag)需要通过对象使用;但是“Hash ID”不需要,是Animator的静态方法。

下面是示例代码

public class GameConsts
{

    //速度参数【speed】
    public static int SPEED_PARAM;
    //角速度参数【angularSpeed】
    public static int ANGULARSPEED_PARAM;
    //潜行参数【sneak】
    public static int SNEAK_PARAM;
    //喊叫参数,也是喊叫状态【shout】
    public static int SHOUT_PARAM;
    //开关门参数【doorOpen】
    public static int DOOROPEN_PARAM;
    //运动状态【locomotion】
    public static int LOCOMOTION_STATE;
    //能否看到玩家【playerInSight】
    public static int PLAYERINSIGHT_PARAM;
    //射击状态
    public static int WEAPONSHOOT_STATE;
    //射击抬手状态
    public static int WEAPONRAISE_STATE;
    //死亡动画状态
    public static int DEAD_STATE;


  static GameConsts()
    {
        SPEED_PARAM = Animator.StringToHash("Speed");
        ANGULARSPEED_PARAM = Animator.StringToHash("AngularSpeed");
        SNEAK_PARAM = Animator.StringToHash("Sneak");
        SHOUT_PARAM = Animator.StringToHash("Shout");
        DOOROPEN_PARAM = Animator.StringToHash("DoorOpen");
        LOCOMOTION_STATE = Animator.StringToHash("Locomotion");
        PLAYERINSIGHT_PARAM = Animator.StringToHash("PlayerInSight");
        WEAPONRAISE_STATE = Animator.StringToHash("WeaponRaise");
        WEAPONSHOOT_STATE = Animator.StringToHash("WeaponShoot");
        DEAD_STATE = Animator.StringToHash("Dead");
    }
}

   
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值