当前位置:网站首页>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:00 【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:

边栏推荐
- 【MySQL】字符集utf8mb4无法存储表情踩坑记录
- 关于 SAP Fiori 应用的离线使用
- IBM: realize the quantum advantage of fault tolerance by 2030
- [FPGA tutorial case 39] communication case 9 - interleaving deinterleaving data transmission based on FPGA
- No coding is required, and the "asynchronous request reply" mode is automatically implemented
- Redis 6.0 source code learning simple dynamic string
- [diary of supplementary questions] [2022 Hangdian summer school 1] c-backpack
- [diary of supplementary questions] [2022 Niuke summer school 1] i-chiitoitsu
- Performance test of ArrayList and LinkedList insertion based on jmh
- 7 issues to consider before website construction
猜你喜欢

Wallys/PD-60 802.3AT Input Output802.3AT/AT 85% Efficiency 10/100/1000M GE Surge Protection

Use of component El scrollbar

The combination sum of C language power deduction question 39. Backtracking method and traversal method

输入cnpm -v出现cnpm : 无法加载文件 C:\Users\19457\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。

Give me five minutes, give you a "cloud"

POP3客户端代码的实现

Use the pagoda panel to plan tasks and automatically push the website to Baidu for inclusion
![STM32 installation tutorial and j-link burning driver installation tutorial [the next day]](/img/09/def640c771f1b9effaaec3844d4cd3.png)
STM32 installation tutorial and j-link burning driver installation tutorial [the next day]

Research and analysis of the third-party dependency library Ag grid

canvas-绘图(鼠标按下 绘制 抬起 结束)
随机推荐
【补题日记】[2022牛客暑期多校1]D-Mocha and Railgun
新红包封面平台可搭建分站独立后台的源码
STM32 installation tutorial and j-link burning driver installation tutorial [the next day]
Leetcode 203. remove linked list elements (2022.07.22)
College degree want to 0 basic programming after looking for a job feasible?
pbootcms模板调用标签序数从2开始或者自动数开始
The communication principle between native components, applets and clients, and the operation principle of video, map, canvas, picker, etc
【补题日记】[2022牛客暑期多校1]C-Grab the Seat
Camper recruitment | AI youth with the world in mind, the United Nations needs your help for sustainable development!
[untitled]
Wallys/PD-60 802.3AT Input Output802.3AT/AT 85% Efficiency 10/100/1000M GE Surge Protection
[datasets] - downloading some datasets of flyingthings3d optical flow
响应式pbootcms模板装修设计类网站
async await详解 & Promise
In depth understanding - wechat developer tools
Network protocol details: UDP
canvas-绘图(鼠标按下 绘制 抬起 结束)
Tensorflow 2.0 deep learning tutorial
Use the pagoda panel to plan tasks and automatically push the website to Baidu for inclusion
【知识图谱】实践篇——基于医疗知识图谱的问答系统实践(Part2):图谱数据准备与导入