Unity2D Animator报错:已定义的horizontal参数不存在求助
问题描述
我在Animator中设置了两个参数,分别为“horizontal”和“vertical”(参数设置截图:
)。其中“vertical”参数运行完全符合预期,但“horizontal”参数使用相同代码却无法正常工作。
我的代码片段(无需反馈代码效率问题):
void Update() { x = Input.GetAxisRaw("Horizontal"); y = Input.GetAxisRaw("Vertical"); animcon.SetInteger("horizontal", Mathf.RoundToInt(x)); animcon.SetInteger("vertical", Mathf.RoundToInt(y)); }
报错内容:
Parameter 'horizontal' does not exist. UnityEngine.Animator:SetInteger (string,int)
我确认没有拼写错误,但同类问题的解决方案多围绕拼写问题展开,特此求助。
排查方案
- 确认
animcon变量已正确赋值给目标GameObject的Animator组件,且该Animator绑定的是你添加了horizontal参数的Animator Controller,避免组件未赋值或Controller绑定错误。 - 严格检查参数名的大小写一致性:Unity Animator参数名区分大小写,仔细对比截图中的参数名与代码里的字符串,确保完全匹配(包括首字母大小写、空格或特殊字符)。
- 刷新Animator资源:右键点击Animator Controller文件选择
Reimport重新导入,或重启Unity项目,解决可能存在的资源缓存问题。 - 核对参数类型:确认Animator中
horizontal参数的类型是Integer,与代码中SetInteger的调用类型一致,类型不匹配也会触发“参数不存在”的报错。 - 排查多Controller混淆:若项目中有多个Animator Controller,确认当前使用的Controller确实包含
horizontal参数,避免误用到未添加该参数的Controller。
内容的提问来源于stack exchange,提问作者spikyllama
相关产品推荐
相关产品推荐

