@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);
    }
   
}
  • Вопрос задан
  • 161 просмотр
Пригласить эксперта
Ответы на вопрос 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. Этот скрипт вешается на родителя. Родитель выбирает элемент, на котором запустить анимацию.
Ответ написан
Ваш ответ на вопрос

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

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