IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 【Unity】Timeline动画的复用 & 动画系统与Fungus对话系统的交互 -> 正文阅读

[游戏开发]【Unity】Timeline动画的复用 & 动画系统与Fungus对话系统的交互

在之前的项目中我已经使用Timeline系统制作了几个动画了,所以这次主要看这些动画怎么复用。
我先在项目文件夹中把之前制作的动画和控制动画的脚本文件都复制到了新项目中。
在场景中创建一个空对象,命名为动画控制器,添加一个可播放引导器的组件和控制动画的脚本。
在可播放引导器那里选择一个之前做好的动画。
在这里插入图片描述

在菜单栏中点击窗口->正在排序(sequencing,这个中文翻译好魔鬼)-> 时间轴(Timeline),就打开了一个制作动画的窗口。窗口展示了动画的内容。
在刚打开的时候需要在红色的位置设置动画的执行对象。
可以看到动画有两条轨道:第一条用来执行人物的动作;第二条主要用来调整人物的位置(方法:点击那个红色的圆点开始录制,点击时间轴上的第一帧后在场景窗口调整人物位置在一个合适的地方后,再次点击圆点结束录制)
在这里插入图片描述
每次复用动画的时候只需要重新设置一下执行对象和第二条轨道人物的位置就可以了。

重点:动画系统和对话系统交互

  1. 在flowchart对象中设置bool变量,在该场景播放几段动画就设置几个变量,变量名和动画的名字保持一致,变量初始值为假。
    在这里插入图片描述

  2. 在flowchartwindow中,为要播放动画的结点添加set variable事件,设置好变量名字,修改变量的值为真
    在这里插入图片描述

  3. 回到动画控制器我们添加的脚本文件,设置好场景中的动画控制器对象,要播放几个动画就把timelines和timelinename后面的数字设置成多少,unity会自动生成下面的选项,再把对应的动画和动画的名字设置好,最后设置好flowchart对象。
    在这里插入图片描述
    这样就实现了交互。下面是控制脚本的内容:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
using Fungus;


public class control : MonoBehaviour
{
    public PlayableDirector AnimationController;
    public TimelineAsset[] timelines;
    public string[] timelinename;
    public Flowchart flowchart;

    // Update is called once per frame
    void Update()
    {
        for(int i = 0; i < timelines.Length; i++)
        {
            if (flowchart.GetBooleanVariable(timelinename[i]))
            {
                AnimationController.Play(timelines[i]);
                flowchart.SetBooleanVariable(timelinename[i], false);
            }
        }
    }
}

  • 最后还有一个值得注意的地方:如果动画时间比较长,玩家点击的速度比较快,就很有可能当前节点的动画还没播放完就已经跳到了下一节点。这时,我们可以给当前节点添加一个wait时间,这样即使玩家点击了对话框,也需要等待固定的时间才可以跳到下一个节点。wait的持续时间可以自己设置。

在这里插入图片描述

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-01-12 00:22:24  更:2022-01-12 00:22:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 19:37:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码