@polyakovyevgeniy

Как проиграть анимацию из кода в Unity3D?

Создал куб с вложенным источником света. Создал для куба анимацию и два клипа, сделал анимацию света. Прикрепил два клипа в объект Animation. В коде пишу:

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

public class MainScript : MonoBehaviour
{

    private Animation _animation;

    void Start()
    {

        _animation = GetComponent<Animation>();
    }

    // Update is called once per frame
	void Update () {
	    if (Input.GetMouseButtonDown(0))
	    {
	        Debug.Log(_animation.GetClipCount());
	        _animation.Play("On");
	    }
	    if (Input.GetMouseButtonDown(1))
	    {
            _animation.Play("Off");
        }
	}
}


Не работает, пишет ошибку: The animation state On could not be played because it couldn't be found!
Please attach an animation clip with the name 'On' or call this function only for existing animations.
UnityEngine.Animation:Play(String)
MainScript:Update() (at Assets/MainScript.cs:21)

Хотя _animation.GetClipCount() возвращает 2.

Что я делаю неправильно?
  • Вопрос задан
  • 9476 просмотров
Решения вопроса 1
MrMureno
@MrMureno Куратор тега Unity
VR for all
https://docs.unity3d.com/ScriptReference/Animation...
для начала используйте метод не устаревший. (хотя может у вас конечно еще четвертая версия юнити)

во вторых, точно проверьте название анимации "On"

и если точно есть в списке и название правильное.
то дело в том как вы её создали ) точнее в кривости юнити)
выберите анимацию и в дебаг режиме инспектора проверьте чтоб в ней стояла галочка Legacy
https://docs.unity3d.com/Manual/InspectorOptions.html - это про то как включить дебаг отображение инспектора

уточню именно анимацию саму, а не компонент Anomation
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы