Hvordan lage et tilpasset spor i tidslinjen?

How Create Custom Track Timeline



Hei, jeg følger den søte nye læringen om Unity, jeg heter Xiaoxin, dette er studiens sammendragsrapport denne uken.

Etter å ha brukt Tidslinje en stund spurte jeg Dazhi: 'Er det bare så få spor på tidslinjen? Jeg fant ut at noen av disse sporene ikke kan oppfylles i det hele tatt. Bruk Spillbart spor jeg lærte før Også plagsomt, er det noen annen måte? '



Dazhi: 'Hvilket problem opplevde du?'



Xiaoxin: 'Den vi lærte før Spillbart spor Et av problemene er: Hver gang du legger til et tilpasset klipp, må du tildele det en Light-komponent. Hvis det er mange klipp, vil det være veldig plagsomt. '



Dazhi: 'Det er greit, det er ikke et stort problem, du kan få alt på en gang ved å velge flere alternativer. Men det du kanskje trenger mer er et tilpasset spor. Det er flere fordeler med å bruke tilpassede spor: '
1. Kan bruke hjernen din til å realisere ubegrensede muligheter med kode
2. Det kan løse problemet med binding av sporet (Bundet objekt i figuren nedenfor). Det trenger bare å være bundet en gang, og alle klipp på sporet er tilgjengelige. Slik som animasjonsspor og aktiveringsspor.
3. Hvis mange typer klipp blandes på det spillbare sporet, vil det ende med å være veldig forvirrende og uintuitivt. Egendefinerte spor kan intuitivt skille spor for forskjellige formål.

bilde

La oss ta en titt på hvordan du kan lære før Spillbart spor Endre det egendefinerte Light Clip til et tilpasset spor, og bind deretter Light-komponenten.



Merk at følgende er basert på forrige Spillbart spor Hvis du ikke har studert i denne delen, anbefales det å studere først Spillbart spor

Egendefinert spor

Først må du lage et tilpasset sporskript som arver TrackAsset:

using UnityEngine using UnityEngine.Timeline [TrackClipType(typeof(LightControlAsset))] [TrackBindingType(typeof(Light))] public class LightControlTrack : TrackAsset {}

Denne koden bruker to attributter:

  • TrackClipType Spesifiserer PlayableAsset-typen for mottak av spor
  • TrackBindingType Spesifiserer objekttypen som sporet krever for å binde.

Nå må du endre PlayableAsset og PlayableBehaviour, som er forrige LightControlAsset og LightControlBehaviour.

Koden til LightControlBehaviour er som følger:

using UnityEngine using UnityEngine.Playables public class LightControlBehaviour : PlayableBehaviour { //public Light light = null no longer need it public Color color = Color.white public float intensity = 1f public override void ProcessFrame(Playable playable, FrameData info, object playerData) { Light light = playerData as Light // There are changes in this place if (light != null) { light.color = color light.intensity = intensity } } }

I PlayableBehaviour er det ikke lenger behov for Light-medlemsvariabelen, fordi den kan fås fra playerData for metoden og konverteres til tilsvarende type.

using UnityEngine using UnityEngine.Playables public class LightControlAsset : PlayableAsset { //public ExposedReference light No need for it public Color color = Color.white public float intensity = 1f public override Playable CreatePlayable (PlayableGraph graph, GameObject owner) { var playable = ScriptPlayable.Create(graph) var lightControlBehaviour = playable.GetBehaviour() //lightControlBehaviour.light = light.Resolve(graph.GetResolver()) lightControlBehaviour.color = color lightControlBehaviour.intensity = intensity return playable } }

Det er ikke nødvendig å beholde ExposedReference i PlayableAsset, sporet vil direkte gi dette lysobjektet.

Legg til i tidslinjen

Nå kan du legge til Light Control Track direkte i tidslinjen.

Etter at du har lagt til spor, må du angi det bundne objektet. På denne måten kan hvert klipp få det bundne objektet.

Den kan brukes som det innebygde sporet!

Egendefinerte spor kan støtte deg til å spille etter ønske, og kan til og med gjøre tidslinjen til en ikke-lineær, interaktiv sekvensanimasjon, vekker det din interesse igjen? Så følg med meg Xiaoxin.

[Utvidet læring] Barnesko interessert i Timeline & Cinemachine: flere veiledninger på Hongliu skole Svar fra offentlig konto timeline Få gratis grafiske håndbøker og videoopplæring.


Ok, la Xiaoxin chatte her her i dag. Kommentarer som ikke er tydelig forklart er velkomne, nei somSamle inn Jeg svarer kanskje ikke deg (og ikke 、 og ikke) (¬_¬)

Jeg er Dazhi, din tekniske stifinner, vi sees neste gang!

Ikke gå! somSamle inn Åh!

Ok, du kan dra nå.