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

ExposedReference<T0>

структура в UnityEngine

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

Описание

Создает тип, значение которого разрешается во время выполнения.

ExposedReference является общим типом, который может быть использован для создания ссылок на объекты Scene и разрешения их фактических значений во время выполнения и с помощью объекта контекста. Это может быть использовано ассетами, такими как ScriptableObject или PlayableAsset для создания ссылок на объекты Scene.

В приведенном ниже примере показано, как PlayableAsset может использовать открытые ссылки для создания ссылок на объекты Scene GameObject. Это пример, в котором используется Timeline, так что вы можете настроить GameObject в Timeline и для создания анимации с GameObject.

//Put both of these scripts in your Project, then go to your Timeline, click the Add dropdown and choose Playable Track. Place this script on your Timeline as a Playable Track
//Click on the track and choose a GameObject from your Scene in the "My Scene Object" field. Also set the velocity.

using UnityEngine; using UnityEngine.Playables;

[System.Serializable] public class ExposedReferenceExample : PlayableAsset { //This allows you to use GameObjects in your Scene public ExposedReference<GameObject> m_MySceneObject; //This variable allows you to decide the velocity of your GameObject public Vector3 m_SceneObjectVelocity;

public override Playable CreatePlayable(PlayableGraph graph , GameObject myGameObject) { //Get access to the Playable Behaviour script TestExample playableBehaviour = new TestExample(); //Resolve the exposed reference on the Scene GameObject by returning the table used by the graph playableBehaviour.m_MySceneObject = m_MySceneObject.Resolve(graph.GetResolver());

//Make the PlayableBehaviour velocity variable the same as the variable you set playableBehaviour.m_SceneObjectVelocity = m_SceneObjectVelocity;

//Create a custom playable from this script using the Player Behaviour script return ScriptPlayable<TestExample>.Create(graph, playableBehaviour); } }

Поместите этот следующий скрипт в Project в ту же папку, что и вышеуказанный скрипт. Этот скрипт изменяет поведение временной шкалы, перемещая Scene GameObject во время воспроизведения воспроизводимого трека.

using  UnityEngine;
using  UnityEngine.Playables;

public class TestExample : PlayableBehaviour { public GameObject m_MySceneObject; public Vector3 m_SceneObjectVelocity;

public override void PrepareFrame(Playable playable, FrameData frameData) { //If the Scene GameObject exists, move it continuously until the Playable pauses if (m_MySceneObject != null) //Move the GameObject using the velocity you set in your Playable Track's inspector m_MySceneObject.transform.Translate(m_SceneObjectVelocity); } }

Свойства

Свойство Описание
defaultValueЗначение по умолчанию, если значение не может быть разрешено.
exposedNameИмя ExposedReference.

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

Метод Описание
ResolveПолучает значение ссылки путем разрешения ее с помощью объекта контекста ExposedPropertyResolver.