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

Объявление

public void MatchTarget(Vector3 matchPosition, Quaternion matchRotation, AvatarTarget targetBodyPart, MatchTargetWeightMask weightMask, float startNormalizedTime, float targetNormalizedTime = 1);

Параметры

matchPosition Положение, которое мы хотим, чтобы часть тела достигла.
matchRotation Вращение, в котором мы хотим, чтобы часть тела была.
targetBodyPart Часть тела, которая участвует в матче.
weightMask Структура, содержащая веса для сопоставления положения и поворота.
startNormalizedTime Время начала в анимационном клипе (0 - начало клипа, 1 - конец клипа).
targetNormalizedTime Время окончания в анимационном клипе (0 — начало клипа, 1 — конец клипа), значения больше 1 могут быть установлены для запуска совпадения после определенного количества циклов. Пример: 2,3 означает 30% 2-го цикла.
completeMatch Позволяет указать, что должно произойти, если функция MatchTarget будет прервана. Значение true заставляет GameObject немедленно перемещаться в matchPosition, если его прерывают. Значение false заставляет GameObject оставаться в своей текущей позиции, если его прерывают.

Описание

Автоматическая настройка положения и поворота GameObject.

Настройте положение и поворот GameObject таким образом, чтобы AvatarTarget достигнул matchPosition, когда текущее состояние соответствует указанному прогрессу. Соответствие цели работает только на базовом слое (индекс 0). Вы можете поставить в очередь только одну цель соответствия за раз, и вы должны дождаться завершения первой, иначе ваше соответствие цели будет отклонено.

Если вы вызываете MatchTarget со временем начала меньше, чем нормализованное время клипа, и клип может зацикливаться, MatchTarget отрегулирует время, чтобы оно соответствовало следующему циклу клипа. Например, время начала = 0,2, нормализованное время = 0,3, время начала будет 1,2. Animator.applyRootMotion должен быть включен, чтобы MatchTarget вступил в силу.

using UnityEngine; public class TargetMatchingManager : MonoBehaviour { public void MatchTarget(Vector3 matchPosition, Quaternion matchRotation, AvatarTarget target, MatchTargetWeightMask weightMask, float normalisedStartTime, float normalisedEndTime) { var animator = GetComponent<Animator>(); if (animator.isMatchingTarget) return; float normalizeTime = Mathf.Repeat(animator.GetCurrentAnimatorStateInfo(0).normalizedTime, 1f); if (normalizeTime > normalisedEndTime) return; animator.MatchTarget(matchPosition, matchRotation, target, weightMask, normalisedStartTime, normalisedEndTime); } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3