Unity 6.3
0 онлайн 63 гостей 3 в системе
Вход

RuntimeAnimatorController

класс в UnityEngine

Наследуется от:Object

Выполнено в:UnityEngine.AnimationModule

Описание

Представление контроллера Animator, оптимизированное для времени выполнения.

Во время выполнения Unity заменяет AnimatorController класс этим оптимизированным классом времени выполнения. Доступ к функциям редактора — например, к изменению структуры Animator Controller — ограничен.

Этот оптимизированный класс предлагает несколько способов обращаться к Animator Controller и изменять его во время выполнения:

  • Хранит ссылку на Контроллер Animator, чтобы можно было заменить Контроллер Animator Контроллером Animator. Это полезно для изменения структуры Контроллера Animator во время выполнения. Используйте Animator.runtimeAnimatorController для доступа к контроллеру, который нужно заменить.
  • Создать AnimatorOverrideController который позволяет переопределить клипы анимации, связанные с Animator Controller. Это эффективнее замены контроллера, поскольку обновляются только клипы. Animator Override Controller строится на том Runtime Animator Controller, которым он инициализирован. Дополнительные ресурсы: AnimatorOverrideController.runtimeAnimatorController.

В следующем примере показано, как создать GameObjects во время выполнения. Каждый GameObject анимирован различными Animator Контроллерами.

// This script spawns random zombie prefabs at runtime. The Animator component for
// each zombie is assigned a different Animator Controller based on the zombie type.

using UnityEngine;

public class RandomZombieSpawner : MonoBehaviour
{
    // The prefab of the zombie Game Object containing an Animator component.
    public GameObject zombiePrefab;

    // Store the references to the Animator Controllers for the different zombie types that can be spawned
    public RuntimeAnimatorController standardZombieAnimator;
    public RuntimeAnimatorController bigZombieAnimator;
    public RuntimeAnimatorController smallZombieAnimator;

    void Start()
    {
        for (var i = 0; i < 10; i++)
        {
            SpawnZombie();
        }
    }

    public void SpawnZombie()
    {
        // Instantiate a new zombie Game Object at a random position
        GameObject zombie = Instantiate(zombiePrefab, new Vector3(Random.Range(0f, 10f), 0, Random.Range(0f, 10f)), Quaternion.identity);
        Animator animator = zombie.GetComponent<Animator>();

        // Randomly determine the type of zombie and assign its Animator with its corresponding Animator Controller.
        var randomValue = Random.Range(0f, 1f);
        if (randomValue <= 0.3f)
        {
            animator.runtimeAnimatorController = bigZombieAnimator;
            zombie.transform.localScale = new Vector3(1.5f, 1.5f, 1.5f);
        }
        else if (randomValue <= 0.6f)
        {
            animator.runtimeAnimatorController = smallZombieAnimator;
            zombie.transform.localScale = new Vector3(0.75f, 0.75f, 0.75f);
        }
        else
        {
            animator.runtimeAnimatorController = standardZombieAnimator;
        }
    }
}

Свойства

Свойство Описание
animationClipsПолучает все AnimationClip, используемые контроллером.
Унаследованные члены 4

Свойства

СвойствоОписание
hideFlagsДолжен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем?
nameИмя объекта.

Открытые методы

МетодОписание
GetInstanceIDПолучает экземпляр ID объекта.
ToStringВозвращает имя объекта.

Статические методы

МетодОписание
DestroyУдаляет GameObject, компонент или ресурс.
DestroyImmediateНемедленно уничтожает указанный объект. Используйте с осторожностью и только в режиме редактирования.
DontDestroyOnLoadНе уничтожать целевой Объект при загрузке нового Scene.
FindAnyObjectByTypeПолучает любой активный загруженный объект типа Type.
FindFirstObjectByTypeПолучает первый активный загруженный объект типа Type.
FindObjectsByTypeПолучает список всех загруженных объектов типа Type.
InstantiateКлонирует исходный объект и возвращает клон.
InstantiateAsyncЗахватывает моментальный снимок первоначального объекта (который должен быть связан с каким-либо GameObject) и возвращает AsyncInstantiateOperation.

Операторы

ОператорОписание
boolСуществует ли объект?
оператор!=Сравнивает, если два объекта ссылаются на разные объекты.
оператор ==Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту.