参数“动画师”不存在
Posted
技术标签:
【中文标题】参数“动画师”不存在【英文标题】:Parameter 'Animator' does not exist 【发布时间】:2021-08-04 18:30:28 【问题描述】:我是 Unity 新手,所以我需要一些帮助来调用动画。我试图在第三次碰撞时调用动画,除了这个我没有错误。我不知道该怎么办。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class Lose_Collider : MonoBehaviour
int count = 0;
public int score = 0;
public Animator boom;
void Start()
boom = GetComponent<Animator>();
private void OnTriggerEnter2D(Collider2D collision)
if(collision.gameObject.name.Contains("UFO"))
Destroy(collision.gameObject);
count++;
score -= 500;
if(count == 1)
Destroy(GameObject.Find("HP 3"));
else if (count == 2)
Destroy(GameObject.Find("HP 2"));
else
Destroy(GameObject.Find("HP 1"));
boom.SetTrigger("ExpAnimator");
//boom.SetTrigger(collision.gameObject.name.Contains("UFO").ToString());
//Destroy(gameObject);
//SceneManager.LoadScene("Main Menu");
else if(collision.gameObject.name.Contains("Star"))
score += 100;
Destroy(collision.gameObject);
【问题讨论】:
【参考方案1】:首先,这不是错误,而是警告。不同之处在于,有了警告,游戏仍然可以运行。警告是有用的提示或提醒某些事情不完全正确,但有内置的错误处理可以安静地处理问题。我永远不会留下警告,因为它们存在让您知道您很可能错过了代码中的某些内容、创建了意外的功能或创建了错误。您的特定警告表明您的动画树不包含名为 ExpAnimato
的动画参数。
我将做一个假设,并说您没有名为ExpAnimator
的Animation Paramater
,而只是想播放动画或其中的状态。如果您想玩动画师,只需致电boom.Play
。如果您想在动画器上播放动画内部的特定状态,请致电boom.Play("YourStateNameHere")
。这个函数调用有other parameters,可以改变动画师处理状态更新的方式。
我在您的代码中看到的另一个问题是您没有分配Boom
引用。由于该字段已经在检查器中公开和序列化,因此通过将游戏对象从场景中拖到字段中来分配它。现在,当您开始游戏时,您可能还会收到关于 boom
未初始化的空引用异常。
如果您想使用参数将状态从Idle
的进入状态更改为您的ExpAnimation
,您需要在动画状态机中添加一个新参数。我可以尝试解释它,但我发现如果你 watch someone 这样做会更容易。本教程中没有代码示例,只是实际的动画状态机的设置,我认为这是你不熟悉的。
【讨论】:
非常感谢!:) 我马上试试以上是关于参数“动画师”不存在的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 中的存储过程,它采用表值参数并插入不存在的并返回存在的