AI代码解释 using UnityEngine;publicclassPlayer:MonoBehaviour{Animator anim;int speedID=Animator.StringToHash("Speed");int isSpeedupID=Animator.StringToHash("isSpeedup");voidStart(){anim=GetComponent<Animator>();}voidUpdate(){anim.SetFloat(speedID,Input.GetAxis("Vertical"));if(Input.GetKeyDown(Ke...
在我们使用Unity的Animator Controller时,会遇到对状态机参数的设置,一般的时候,我们会直接使用SetBool(string,true)的形式来对属性值进行赋值,但是变量过多的时候,自己有可能会忘记,毕竟没有字符串的补全功能,而且值多了以后会设置String的方法效率比较低,会通过使用HashID的形式代替字符串进行索引设置。
在我们使用Unity的Animator Controller时,会遇到对状态机参数的设置,一般的时候,我们会直接使用SetBool(string,true)的形式来对属性值进行赋值,但是变量过多的时候,自己有可能会忘记,毕竟没有字符串的补全功能,而且值多了以后会设置String的方法效率比较低,会通过使用HashID的形式代替字符串进行索引设置。
String规范 避免使用字符串指定要在Animator中播放的状态和要在Material中操作的属性。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 _animator.Play("Wait");_material.SetFloat("_Prop",100f); 在这些函数中,Animator.StringToHash()和Shader.PropertyToID()被执行以将字符串转换为唯一的标识值。由于在多...
Animator.StringToHash public static int StringToHash(string name); パラメーター name 文字列から ID へと変換します。 説明 文字列からパラメーター ID を生成します。 ID はパラメーターの最適化されたセッターとゲッターのために使用されます。 Copyright © 2016 Unity Technologies. ...
player_Rbody = GetComponent<Rigidbody2D>();//注意:StringToHash中的参数要和Animator中设置Parameters一致isOnGroundID = Animator.StringToHash("isOnGround"); isCrouchID = Animator.StringToHash("isCrouch"); xVelocityID = Animator.StringToHash("xVelocity"); ...
enemy_anim = GetComponent<Animator>();//注意:StringToHash中的参数要和Animator中设置Parameters一致isOnGroundID = Animator.StringToHash("isOnGround"); yVelocityID = Animator.StringToHash("yVelocity"); }privatevoidUpdate(){ enemy_anim.SetFloat(yVelocityID, GetComponent<Rigidbody2D>().velocity.y);...
int isWalkingHash; //更简单的存储方式 Hash值 int isRunningHash; //更简单的存储方式 Hash值 // Start is called before the first frame update void Start() { animator = GetComponent<Animator>(); isWalkingHash = Animator.StringToHash("IsWalking");//将Hash值代表IsWalking ...
对于Animator属性名称,请使用Animator.StringToHash,对于Material和Shader属性名称,请使用Shader.PropertyToID。 选择正确的数据结构 您选择的数据结构可以对效率或效率低下产生累积效应,因为您每帧迭代数千次。使用List、Array或Dictionary作为集合是否更合适?按照C#中的数据结构MSDN指南作为选择正确结构的一般指南。
当我们使用Unity的Animtor.SetBool或其他设置Animator Parameter的函数时,会有两个overloading的函数,一个是Animator.SetBool(string name, bool value),一个是Animator.SetBool(int id, bool value)。根据Unity的文档,后者的id参数可以通过Animator.StringToHash获得,而前者其实也会在内部通过相同的Hash算法计算得到id值...