参数“动画师”不存在

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 的动画参数。

我将做一个假设,并说您没有名为ExpAnimatorAnimation Paramater,而只是想播放动画或其中的状态。如果您想玩动画师,只需致电boom.Play。如果您想在动画器上播放动画内部的特定状态,请致电boom.Play("YourStateNameHere")。这个函数调用有other parameters,可以改变动画师处理状态更新的方式。

我在您的代码中看到的另一个问题是您没有分配Boom 引用。由于该字段已经在检查器中公开和序列化,因此通过将游戏对象从场景中拖到字段中来分配它。现在,当您开始游戏时,您可能还会收到关于 boom 未初始化的空引用异常。

如果您想使用参数将状态从Idle 的进入状态更改为您的ExpAnimation,您需要在动画状态机中添加一个新参数。我可以尝试解释它,但我发现如果你 watch someone 这样做会更容易。本教程中没有代码示例,只是实际的动画状态机的设置,我认为这是你不熟悉的。

【讨论】:

非常感谢!:) 我马上试试

以上是关于参数“动画师”不存在的主要内容,如果未能解决你的问题,请参考以下文章

如何重新启动统一动画师?

SQL Server 中的存储过程,它采用表值参数并插入不存在的并返回存在的

Discord.js 不检查参数是不是存在

不存在包含多个参数的 SQL

为啥我的 PrimeNG FileUpload 组件存在这个问题,该组件与引用不存在的页面的 url 参数相关

目录不存在。参数名称:directoryVirtualPath