La position actuelle:Accueil du site>Tutoriel sur l'utilisation de la ligne de temps unitaire
Tutoriel sur l'utilisation de la ligne de temps unitaire
2022-07-24 02:29:11【Star Mengmeng】
J'utiliseUnity 2020.3.25,TimeLineLa version est1.5.2.
TimeLineLes éléments suivants peuvent être ajoutésTrack

1.Activation TrackGénéralement utilisé pour contrôlerGameObjectAfficher et masquer
Par exemple, en contrôlantCineMachineLe changement de lentille est réalisé par l'affichage de la caméra

2.Animation TrackContrôle la lecture ou l'enregistrement d'une animation
a.Changement d'animation du personnage,Peut être compris comme une autre machine d'état
Faites glisser le personnage principal dans le nouveau Animation Track,Encore une fois, la correspondance des rôlesClipsGlisser dans le cadre de séquence,Vous pouvez contrôler la longueur et le mélange de la lecture d'animation.

b.Emplacement de l'enregistrement、Rotation、Zoom et autres animations(“Petit point rouge”À gauche.“Segment de ligne”Vous pouvez agrandir les courbes d'animation)

Cliquez sur nouveauAnimation Track Petit point rouge à droite , Entrez l'état d'enregistrement , À enregistrer GameObjectObjet,Clic droitAdd Key

Si vous modifiez une animation enregistrée ,Vous pouvez choisirUpdate Key

Mode d'utilisation etAnimation L'enregistrement de l'animation est similaire
3.Audio Track Il s'agit principalement de contrôler la lecture et la commutation de l'audio , L'audio peut également être mélangé .

4.Control Track Aucun attribut d'exposition .
- ControlTrack Utilisation générale actuelle
- Contrôle de l'affichage et de la dissimulation des objets
- Contrôle la lecture du système de particules , Faire glisser un objet contenant un système de particules et l'attraper ControlTrack Après, Permet de contrôler la progression des émissions de particules , Peut également être inversé
- Contrôle autre timelineJouer
- ControlTrack Vous pouvez faire glisser la plupart des objets de la scène en orbite , Vous pouvez également faire glisser la plupart Assets Sous la table des matières prefab En orbite .
- ControlTrack Peut contrôler avec Animator L'invisibilité d'un objet , Mais je ne peux pas contrôler la progression de son animation , Pour contrôler la lecture de l'animation, il faut utiliser Animation Track.

5.Signal Track Événements de cadre animés (Event), Un rappel qui peut déclencher un événement à un cadre spécifique
Il faut d'abord créer un Signal ReceiverRécepteur d'événements,Créer un autreSignalDocumentation,ParamètresRuntime Only Objet et fonction de rappel correspondante .

Signal Je garde ça ici. AssetsC'est dans le catalogue.

Après cela, vous mettez Signal Emitter Faites glisser vers le nouveau Signal Track- Oui.,Encore.AssetsSous la table des matièresSignal Glisser sur le cadre correspondant . Lors de l'exécution au cadre courant , Il déclenche la fonction de rappel à l'intérieur .

6.Playable TrackPiste personnalisée
Playable Track Vous ne pouvez rien y ajouter. Clip. C'est parce que cette piste est personnalisée Clip,Doit être mis en œuvre par Code.
Voici un petit châtaignier . Maintenant, faisons un petit objectif. :Par personnalisationClip Modifier la couleur et la luminosité de la lumière (Bien sûr.,Cette fonction peut être activée parAnimation TrackRéalisation, Mais je n'en ai pas besoin. ). Nous apprenons à personnaliser Clip, Donc, en utilisant la personnalisation, ClipPour réaliser.
Créer une personnalisationclip Deux scripts sont nécessaires :
- Un pour la logique de traitement :Héritage requisPlayableBehaviour
- Un pour les données :Héritage requisPlayableAsset
Je vais l'utiliser ci - dessous.Playable API,Playable API Le principe de base est de séparer la logique des données .
Logique de traitement
Commençons par créer un héritage de script PlayableBehaviour, Écrivez la logique du traitement dans ce script . Quelle est la logique du traitement? ? En fait, Timeline Changement de temps ,C'estclipComment ça va changer.Les codes sont les suivants::
using UnityEngine;
using UnityEngine.Playables;
public class LightControlBehaviour : PlayableBehaviour
{
public Light light = null;
public Color color = Color.white;
public float intensity = 1f;
public override void ProcessFrame(Playable playable, FrameData info, object playerData)
{
if (light != null)
{
light.color = color;
light.intensity = intensity;
}
}
}
À quoi sert ce code? ? Il détermine d'abord qu'il faut modifier Light Quelles propriétés du composant .
Et ensuite réécritPlayableBehaviourDeProcessFrameMéthodes.ProcessFrameIl sera là.Timeline Appelé lorsque chaque cadre est mis à jour .Dans cette approche,,Vous pouvez modifierLightPropriétés du composant.
Traitement des données
Ensuite, Personnaliser clipCréationPlayableAsset,Utilisé pour enregistrer les données,Les codes sont les suivants::
using UnityEngine;
using UnityEngine.Playables;
public class LightControlAsset : PlayableAsset
{
public ExposedReference<Light> light;
public Color color = Color.white;
public float intensity = 1.0f;
public override Playable CreatePlayable (PlayableGraph graph, GameObject owner)
{
var playable = ScriptPlayable<LightControlBehaviour>.Create(graph);
var lightControlBehaviour = playable.GetBehaviour();
lightControlBehaviour.light = light.Resolve(graph.GetResolver());
lightControlBehaviour.color = color;
lightControlBehaviour.intensity = intensity;
return playable;
}
}
Vous verrezPlayable API Pour réaliser la séparation des données et de la logique ,Un petit problème,Il y a encore beaucoup de code..
PlayableAssetIl y a deux objectifs.
- Tout d'abord, il contient clipDonnées,Ces données seront disponibles à l'adresse suivante:Timeline Sérialisation dans les ressources .
- Ensuite, il crée PlayableBehaviourEt lui assigner une valeur,La dernière sortie estPlayableFig..(PlayableGraph, Vous pourriez avoir raison Playable La photo ne comprend pas ,C'est bon, Sautez d'abord .)
CreatePlayable La première ligne de la méthode est la suivante: :
var playable = ScriptPlayable<LightControlBehaviour>.Create(graph);
Cette ligne de code sera graph Ajouter un comportement personnalisé LightControlBehaviour,Pour que vous puissiezPlayableBehaviourParamètresLightPropriétés de.
LightControlAsset Dans les propriétés des membres de la classe ExposedReferenceQu'est - ce que ça fait??Parce quePlayableAsset C'est une ressource. , Il ne peut pas faire directement référence à un objet dans la scène .En ce momentExposedReferenceIl diraLight Exposé comme un attribut ,Ça pourrait être dansTimelineSet it in,Et aprèsCreatePlayable L'objet peut être utilisé dans .
UtiliserPlayable Track Et ajouter des personnalisations Clip
On peut le faire maintenantTimlineAjouterPlayable Track, Puis faites un clic droit sur la nouvelle piste pour ajouter une personnalisation clip, La personnalisation que vous venez d'ajouter apparaît dans le menu Clip.

Add From LightVous pouvez choisir parmi un LightAjouterAdd Light Control AssetVous pouvez en ajouter un directement clip,Puis sélectionnezclipAprès,Oui.Light Composant assigné à clip, Vous pouvez prévisualiser les résultats .

IntégréPlayable Track Est une personnalisation de réception Clip Une piste universelle pour , Il peut recevoir des personnalisations simples Playable clip,Par exemple, l'exemple ci - dessus. Pour des situations plus complexes , Vous pouvez également utiliser des pistes personnalisées .
7.Cinemachine Track Fonctionnement en série de la caméra , Ceci est également disponible pour la commutation de lentilles .

TimeLine Les différentes voies sont plus flexibles , Le même effet peut être réalisé de plusieurs façons , Trouvez le bon. .
Les captures d'écran des travaux sont les suivantes:

Mentions de copyright
Auteur de cet article [Star Mengmeng],Réimpression s’il vous plaît apporter le lien vers l’original, merci
https://fra.chowdera.com/2022/205/202207240226275486.html
Recommandé par sidebar
- [Python flask note 5] Blueprint simple à utiliser
- Composants web - cycle de vie des éléments personnalisés
- Entrepôt de données 4.0 Notes - acquisition de données commerciales
- Entrepôt de données 4.0 Notes - acquisition de données sur le comportement de l'utilisateur II
- Affichage itératif des fichiers.h5, opérations de données h5py
- Résumé des connaissances mathématiques communes
- Comment se développe le serveur GPU refroidi à l'eau dans le Centre de données dans le cadre de l'informatique est - Ouest?
- Connaissance du matériel 1 - schéma et type d'interface (basé sur le tutoriel vidéo complet de l'exploitation du matériel de baiman)
- Examen des principes fondamentaux de la structure en acier
- Unity3d: ugui source, Rebuild Optimization
Devinez que vous aimez
Solution rapide: xshell ne peut pas glisser dans un dossier ou un paquet
Rhcsa - - parcourir le contenu du fichier, couper, uniq, trier, utiliser les commandes.tr
Intégrité du signal (si) intégrité de l'alimentation électrique (PI) notes d'apprentissage (32) Réseau de distribution d'énergie (4)
Quelle est la raison pour laquelle la plate - forme easygbs ne peut pas lire l'enregistrement vidéo et a un phénomène de streaming répété rtmp?

Notes du jour 7

【 Visual Dispatching Software】 Shanghai Dow Ning apporte netronic download, Trial, tutoriel pour l'Organisation SMB
2. Les règles quantitatives
Événements courants de la souris et du clavier
C #: in, out, ref Keywords
Connaissance détaillée du GRE, du mgre; Connaissance de la configuration de base de l'OSPF
Recommandé au hasard
- Comment creo 9.0 modifie - t - il rapidement le système de coordonnées Cao?
- Notes du jour 5
- Renforcement de l'apprentissage - points de compréhension du gradient stratégique
- Le shell a besoin de connaître les commandes
- Okrk3399 Development Board Reserved i2c4 Mounting EEPROM
- Optimisation du serveur Cloud Huawei avec connexion clé
- Chapitre 2 requête de base et tri
- 【 langage c】 devinez jeux numériques + applet d'arrêt
- Qu'est - ce que le codage par titre?
- Feignclient utilise un tutoriel détaillé (illustration)
- Kettle implémente une connexion de base de données partagée et insère une instance de composant de mise à jour
- Simulation de modulation et de démodulation du signal CBOC basée sur MATLAB, sortie de corrélation, spectre de puissance et suivi de décalage de fréquence
- Les raccourcis clavier liés à l'onglet ne peuvent pas être utilisés après la mise à jour du vscode
- Expression du suffixe (une question par jour pendant les vacances d'été 4)
- Idées de conception sur l'initialisation des paramètres d'entrée de page
- Éléments de base de la validation des haricots - 04
- Une solution complète au problème du sac à dos dans la programmation dynamique
- Récursion des bosses 1: formule récursive
- Explication détaillée de l'injection aveugle d'erreur SQL
- Données chronologiques dans l'Internet industriel des objets
- Une erreur s'est produite lors de la configuration du login du moteur Gom: aucun correctif requis n'a été trouvé!
- [215] Gin Framework connection to MySQL Database
- Explication détaillée du principe de co - intégration en go
- [jzoof] 13 plage de mouvement du robot
- PCL: ajustement multiligne (RANSAC)
- 1259. Programmation dynamique de poignée de main disjointe
- Conception de l'interface UART basée sur la FPGA
- Elk note 25 - expérience rapide APM
- Analyse de l'industrie | interphone logistique
- Principe de l'énergie et méthode variationnelle note 19: principe de l'énergie résiduelle minimale + principe du travail possible
- Atelier macoll - notes de développement de la secte de l'ours 2
- Comment présenter votre expérience de projet lors d'une entrevue
- Scala Programming (Junior)
- Synchro esp32c3 Hardware Configuration Information serial port Print Output
- Serveur de chat de Cluster: conception de la table de base de données
- Apprentissage Lambda (utilisation du comparateur après tri, regroupement après collecte avec collectors.groupingby)
- Comment forcer complètement le meurtre de processus indépendants de l'arrière - plan?
- Programmation JDBC pour MySQL
- Utilisation des fonctions fléchées es6
- Lu Xia action | Source Kai Digital: Existing Mode or open source innovation?