Unity Timeline 自定义 Signal的使用

       Timeline是一个创建过场动画,整合不同类型的资源序列的一个工具。目前在网上的搜索到的资料比较少,而且版本各异,需要结合官方文档和解说视频才能比较好地学习一遍,本文主要记录一下Signal的自定义脚本使用。

       Timeline本身就是一个资源整合的工具,可以给不同的对象建立不同类型的轨道(类似视频音轨),例如有:对象激活与隐藏轨道,动画轨道,声音轨道等;每个轨道可以单独编辑,轨道内的不同资源可以有序排列,并且可以融合,表现力可谓是杠杠的。

       Timeline的基本部分可以直接去看官方的文档,这里推荐一下外国的博主的教学链接,简单明了,快速掌握基本知识Intro to Unity Timeline

        对于Unity的动画,很多时候需要是打关键帧给回调事件到程序里处理逻辑,例如攻击砍杀动作,在某一个关键帧标记一个回调事件,让程序去做相应的处理。类似地,在Timeline下面,也是有这个需要,在不同的轨道播放过程中,我们希望在某个点有具体的回调方式,这个就是今天要说的:Signal了。

        Signal对于熟悉网络或者操作系统的朋友来说一点都不陌生,但是对于一般程序来说,如果是用Event就会友好的,不知道为何要用这个名字。它的作用是在单独的Signal Track或者Track上面的资源增加事件点,给注册了相关事件的对象抛事件,让调用相关函数。具体操作如下:

  1. Signal Track或者Track上面的资源添加Signal Emitter
    1. 在Timeline的面板上,选择任意一个Signal Track或者Track上面的资源:右键->Add Signal Emitter
    2. 在Signal Emiiter的检视器上创建发射信号
  2. 在需要接收Signal的GameObject上增加处理回调的脚本对象,例如:
    1. using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      
      public class TimelineController : MonoBehaviour
      {
      
          public void Test(string parameter)
          {
              Debug.Log("Test:" + parameter);
          }
      
      }
      

       

  3. 在需要接收Signal的GameObject上增加Signal Receiver的组件,增加信号及处理函数
    1. 最终大概的效果操作如下,回调函数可以带参数,Unity会自动识别
  4. 在Timeline启动的时候会调用这个函数处理,最终实现类似关键帧的回调效果。

由于相关教程实在太少,只有官方的教程说得详细连贯,很多网上的文章也实在是不能模仿着来试,希望能帮到你。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章