c# - 从代码设置动画参数时出现警告?
问题描述
我关注了一个学习 Unity 的 Youtube 视频,但我遇到了一个我不明白的奇怪错误。
public class Player: MonoBehaviour
{
[SerializeField]
private float jumpmovement = 11f;
[SerializeField]
private float movement = 10f;
private float movementx;
[SerializeField]
private Rigidbody2D mybody;
private Animator anim;
[SerializeField]
private string Walk_Ani = "Player is walking ";
private SpriteRenderer sr;
private void Awake1()
{
mybody = GetComponent<Rigidbody2D>();
anim = GetComponent<Animator>();
sr = GetComponent<SpriteRenderer>();
}
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
Awake1();
Playerkeymove();
animateplayer1();
}
void Playerkeymove()
{
movementx = Input.GetAxisRaw("Horizontal");
// Debug.Log(movementx);
transform.position += new Vector3(movementx, 0f, 0f) * movement * Time.deltaTime;
// Debug.Log(transform.position);
}
void animateplayer1()
{
// anim.SetBool(Walk_Ani , true);
// we are going to the right side
if (movementx > 0)
{
anim.SetBool(Walk_Ani, true);
sr.flipX = false;
}
else if (movementx < 0)
{
// we are going to the left side
anim.SetBool(Walk_Ani, true);
sr.flipX = true;
}
else
{
anim.SetBool(Walk_Ani, false);
}
}
}
我的控制台中的错误在第 66 行。我完全按照视频进行,甚至尝试使用视频的源代码。
解决方案
这不是一个错误,它是一个warning
. Unity 告诉您,在脚本所在的对象上Player is walking
分配给您的动画不存在名为 ,的动画参数。Animator
除此代码外,您还需要创建一个Animation
具有特定Animation Paramater
调用的Player is walking
. 如果您已经有了这个并按照您提到的本教程进行操作,则很可能是一个错字,您需要删除当前所拥有的额外尾随空格Player is walking
,它可能需要是Player is walking
.
编辑:另外,正如在这个问题的评论中提到的那样,您很可能希望将函数更改Awake1
为Awake
而不是从Update
.
private void Awake()
{
mybody = GetComponent<Rigidbody2D>();
anim = GetComponent<Animator>();
sr = GetComponent<SpriteRenderer>();
}
// Update is called once per frame
private void Update()
{
Playerkeymove();
animateplayer1();
}
Awake
是所有 Monobehaviour 使用的特殊方法,一般用于初始化引用。每帧调用它是非常浪费的,因为当这些对象没有改变时,您会不断地重新分配这些对象的引用。
推荐阅读
- c# - “连续快速切多个水果给玩家双倍/三倍积分”
- java - 如何在 Z3 java API 中获取上限和下限?
- flutter - 颤振:如何从扩展面板中删除图标
- reactjs - 输入“承诺”
' 缺少类型 'ReactElement 的以下属性 - python - 使用 args 定义函数以在 df.transform 中使用
- amazon-web-services - terraform 中的任务执行 IAM 角色
- php - 使用 OCB 模式时,Openssl 解密失败
- javascript - Add CSS dynamically to non-sibling div using JavaScript/jQuery?
- java - HTML 页面如何在 Eclipse 动态 Web 项目中找到 servlet?
- excel - 如何在vba excel中添加附件按钮