Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Объявление

public void SetCurve(string relativePath, Type type, string propertyName, AnimationCurve curve);

Параметры

relativePath Путь к игровому объекту, к которому относится эта кривая. Формат relativePath аналогичен пути, например. "корень/позвоночник/левая рука". Если relativePath пуст, это относится к игровому объекту, к которому прикреплен анимационный клип.
type Тип класса анимируемого компонента.
propertyName Имя или путь к анимируемому свойству.
curve Кривая анимации.

Описание

Назначает кривую для анимации определенного свойства.

Если curve имеет значение null, кривая будет удалена. Если кривая для этого свойства уже существует, она будет заменена.

Примечание.SetCurve будет работать только во время выполнения для устаревших анимационных клипов. Для неустаревших AnimationClips это функция только для редактора.

В следующем примере скрипта показано, как положение GameObject можно анимировать с помощью анимационного клипа. Анимированная кривая устанавливается на AnimationClip с помощью SetCurve(). В этом примере смещение x перемещается с 1,0 до 0,0.

API SetCurve можно использовать для анимации самых разных параметров. Некоторые типичные компоненты, такие как Transform и Material, имеют простой доступ к переменным. Например, Transform содержит такие переменные, как Transform.localPosition. Значения x, y и z для localPosition можно анимировать с помощью API AnimationClip. Просмотрите документацию по Transform, чтобы увидеть переменные и то, как их можно анимировать.

Класс Material также связан с переменными, которые можно анимировать. Они исходят из шейдера, который используется для рендеринга. При использовании параметра «Редактировать шейдер...» в раскрывающемся списке материалов отображаются все параметры, которые можно анимировать. Все анимируемые параметры начинаются с подчеркивания, поэтому можно анимировать, например, цвет (_Color) и масштаб (_BumpScale).< /p>

Чтобы проиндексировать несколько материалов в одном и том же средстве визуализации, вы можете добавить к атрибуту такой префикс:
"[1]._MainTex.offset.y".

В приведенном ниже примере скрипта показано, как можно одновременно анимировать GameObject двумя способами. В этом примере положение GameObject анимировано, а цвет материала также меняется с течением времени.

// Этот пример скрипта показывает, как можно использовать SetCurve() using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { // Анимируем положение и цвет GameObject public void Start() { Animation anim = GetComponent<Animation>(); AnimationCurve curve; // создаем новый AnimationClipAnimationClip clip = new AnimationClip(); clip.legacy = true; // create a curve to move the GameObject and assign to the clip Keyframe[] keys; keys = new Keyframe[3]; keys[0] = new Keyframe(0.0f, 0.0f); keys[1] = new Keyframe(1.0f, 1.5f); keys[2] = new Keyframe(2.0f, 0.0f); curve = new AnimationCurve(keys); clip.SetCurve("", typeof(Transform), "localPosition.x", curve); // обновить клип, изменив красный цвет curve = AnimationCurve.Linear(0.0f, 1.0f, 2.0f, 0.0f); clip.SetCurve("", typeof(Material), "_Color.r", curve); // теперь анимируем GameObject anim.AddClip(clip, clip.name); anim.Play(clip.name); } }

Названия свойств можно найти, установив для сериализации активов режим Force Text в настройках редактора. Используйте Edit->Project Settings->Editor, чтобы включить этот режим. Текстовые файлы, которые затем записываются редактором, будут включать имена свойств. Например, файл yaml, написанный для объекта сцены, будет включать настройки камеры. Глядя на этот файл yaml, вы увидите:

m_BackGroundColor: {r: .192156866, g: .301960796, b: .474509805, a: .0196078438}
m_NormalizedViewPortRect:
сериализованная версия: 2
x: 0
д: 0
ширина: 1
высота: 1
рядом с плоскостью отсечения: .300000012
дальняя плоскость отсечения: 1000
поле зрения: 60
орфографический: 0
орфографический размер: 5
м_Глубина: -1

Это показывает, что название параметра FOV — «поле зрения». Если вы хотите создать анимационный клип для анимации поля зрения камеры, вы должны передать «поле зрения» в качестве свойства.

Другим примером является доступ к настройкам Light. Файл scene.unity (при условии, что сцена называется scene) будет иметь строку для цвета света. Сценарий может получить доступ к цвету света, обратившись к m_Color. Для работы этого примера сцена должна иметь свет.

Посмотрите так же: функцию ClearCurves и класс AnimationCurve.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3