美文网首页
Timeline 轨道详解 SignalTrack

Timeline 轨道详解 SignalTrack

作者: 暴走TA | 来源:发表于2021-05-19 09:27 被阅读0次

简介: SignalTrack 使用过来发送事件的轨道。何为事件,简单理解就是当时间线滑动到某个事件位置时,就会调用事件指定的方法。 AnimationTrack , AudioTrack , ActivationTrack 也可以发送事件
版本:Unity2019.4.12f1 HDRP 7.5.1

准备


  • timeline 中添加一个 SignalTrack

  • 既然是发送一个事件,那就需要一个接受物体,创建一个空物体并添加 SignalReceiver 组件

  • 创建一个 SignalPrinter 类,来调试我们的事件发送结果

      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      public class SignalPrinter : MonoBehaviour
      {
          public void FirstPrint()
          {
              Debug.Log("the first print from "+gameObject.name);
          }
          public void SecondPrint()
          {
             Debug.Log("the second print from " + gameObject.name);
          }
      }
    

SignalTrack 属性介绍


  • SignalTrack 轨道最左侧的属性框,可以指定一个带有 SignalReceiver 组件的物体,所有本轨道的事件都会向其发送
  • SignalTrack 没有公开属性可以设置
SignalTrack 仅有一个接受对象属性

SignalTrack 事件点介绍

  • 创建事件文件 Project 面板内右键,Create -> Signal
右键创建 signal 文件
  • 添加事件到信号轨道,在信号轨道上右键,可以选择 AddSignalEmitter 添加一个空的事件点,也可以选择 AddSignalEmitterFromSignalAsset 从事件文件创建事件点
右键创建事件点
  • 事件点属性介绍
事件点属性面板

1. Time:事件点的事件位置 s:秒为单位,f:帧为单位
2. Retroactive:如果Timeline开始播放信号时间点后的内容,它会触发信号
3. EmitOnce:当轨道处于循环状态时,只第一次发射信号
4. EmitSignal:指定当前事件点触发后要发送的信号
5. SignalReceiver:这里主要展示的时接受信号的物体的 SignalReceiver 的组件内容

  • 当添加新的事件时,如果接受物体上没有信号设置,则会提示添加
提示添加信号类型设置到接受信号的物体 物体的 SignalReceiver 组件也发生了相应的变化
  • 高亮的 Signal 就是当前事件点将要发送的信号
高亮的 Signal

测试信号触发流程


  • 给我们的信号接收物体添加我们写的测试用的 SignalPrinter 组件
添加 SignalPrinter 组件
  • 给 signal1 设置 FirstPrint,给 Signal2 设置 SecondPrint
给 Signal 设置 FirstPrint

信号接收物体调用其它物体方法


  • 信号接收物体处理调用本身组件的方法,可以指定调用其它物体的方法,只需要设置相对应事件设置的接受物体即可,这里指定的物体不再需要绑定 SignalPrinter 组件
设置接受物体为其他物体 调用其它物体的方法
  • 一个信号接收器也可以同时向多个物体发送信号,在对应信号的列表里进行添加即可
同时调用多个物体的方法

相关文章

网友评论

      本文标题:Timeline 轨道详解 SignalTrack

      本文链接:https://www.haomeiwen.com/subject/sdgjjltx.html