unity3d 在脚本中制作时,Unity动画未播放?

yr9zkbsy  于 2023-05-23  发布在  其他
关注(0)|答案(2)|浏览(247)

我想让它在你涂吐司的时候播放动画。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Toast : MonoBehaviour
{
    Ray ray;
    RaycastHit raycastHit;
    public Camera cam;
    public GameObject ButterIt;
    private float myTimer = 0f;
    private bool isCounting = false;
    private Animation anim;
    public GameObject yellow;

    void Start()
    {
        cam = GetComponent<Camera>();
        anim = gameObject.GetComponent<Animation>();
        yellow.SetActive(false);
    }

    void Update()
    {
        ray = new Ray(transform.position, transform.forward * 100);
        if (Physics.Raycast(ray, out raycastHit))
        {
            if (raycastHit.transform.tag == "Death")
            {
                ButterIt.SetActive(true);
                if (Input.GetKeyDown("f"))
                {
                    Debug.Log("Stop Touching My Junk You Pervert! - Tickle Me Bender");
                    isCounting = true;
                }
            
            }
            else
            {
                ButterIt.SetActive(false);
            }
        }

        if (isCounting)
        {
            myTimer += Time.deltaTime;
        }

        if (myTimer > 2.5f)
        {
            yellow.SetActive(true);
            Debug.Log("WEE WOO WEE WOO - Patrick");
            isCounting = false;
            anim.Play("YellowFade");
        }
    }
}

我原以为它会让屏幕变黄一小段时间,然后进入另一个场景。我试着在互联网上寻找帮助,但我找不到任何东西,或者我太笨了,无法将其应用到我的代码中。
这是我的动画师的样子:
Animator ](https://i.stack.imgur.com/XATMO.png
也有一个错误说:动画组件“anim”使用的AnimationClip“YellowFade”必须标记为旧版。
然后在我将其设置为legacy并触发动画后,它说:没有动画附加到主摄像机游戏对象,但它试图访问它的脚本,你可能需要添加一个动画到游戏对象主摄像机或你的脚本需要检查是否组件附加在使用它之前。
然后,当我试图添加动画,它说,旧剪辑是不允许在动画控制器。
有人能帮忙吗?

iq0todco

iq0todco1#

您对anim声明使用了不正确的类型。正确的一个是动画,这应该解决你所有的问题

omqzjyyz

omqzjyyz2#

您正在使用Animation组件,对于新项目,请使用animator组件

  • 添加animator组件而不是animation组件
  • 制作一个新的animator控制器并将其分配给你的animator组件
  • 你必须删除旧的动画和重新创建它们或只是改变动画类型
  • 将它们添加到animator窗口中,并确保新的动画名称为YellowFade

对代码进行以下更改

private Animator anim; 


anim = gameObject.GetComponent<Animator>();

相关问题