Задать вопрос
@Slavon7

Как сделать анимацию дочернему елементу?

Как сделать анимацию дочернего елемента?Суть в том что у меня есть много дочерних елементов и вешать на них анимацию не вариант.Я хотел бы что бы у меня была анимация в проекте а через код при запуске мы находим рандомный елемент и вешаем анимацию
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ScrpChl : MonoBehaviour
{
    
    int max;
    public GameObject parent;
    public Animation anim;
    public AnimationClip a;

    void Start()
    {
        anim = GetComponent<Animation>();
        Debug.Log(transform.childCount);
        parent.transform.GetChild(Random.Range(0, transform.childCount + 1)).gameObject.anim.Play(a.name); // не понимаю как правильно записать gameObject.anim.Play(a.name);
    }
   
}
  • Вопрос задан
  • 175 просмотров
Подписаться 1 Средний Комментировать
Ответ пользователя pashara К ответам на вопрос (1)
@pashara
Никак не модифицировал качественно кода, только логически:
void Start()
    {
        anim = transform.GetChild(Random.Range(0, transform.childCount)).gameObject.GetComponent<Animation>(); //Изменил диапазон рандома
        Debug.Log(transform.childCount);
       anim.Play(a.name);
    }

Сначала нужно выбрать рандомный элемент с аниматрором, получить у этого элемента аниматор и только потом
запустить анимацию (в коде вопроса непонятно что творится - у GameObject'a берётся поле, которого изначально нет в Unity.).
P.S. Такой код опасен, поскольку есть куча моментов, где может запросто словть nullreference
P.S.S. Этот скрипт вешается на родителя. Родитель выбирает элемент, на котором запустить анимацию.
Ответ написан