Unity剧情制作BUG

1,002 阅读2分钟

开发版本2019 导入资源,实现对话系统 unity娘

  • 工具栏添加对话窗口
  • 控制器

开始

创建角色

结束对话框

  • 修改提示框

动画播放器

創建panel,將unity娘拖上去

选择Main Canera按住Ctrl+Shift+F 观察视野 创建一个空物体,引入可播放导引器 --动画控制器 这个英语版

创建文件夹存放动画TimeLine

打开Timeline窗口 切换动画进行录制 选择人物模型拖拽到TimeLine上

添加动画片段,发现模型消失了。。。。

  • 加个控制位置轨道,不然会跑回原点 不知道怎么添加
  • 请将面板,模型位置修改一下(0,0,0) 在选择人物模型创建运动轨道 开始录制
  • 选择帧调整搭配,位置,旋转 转向镜头,添加待机动画 (动画过度比较生硬,把动画往前拖一点,与之前动画重合在一起,自动生成过渡的效果)

切换Timeline

在切换的过程中容易发生位置的偏移,复制刚刚制作好的 (丢失动画,重新拖拽)只保留最后的位置和旋转 添加跳跃的动画 添加动画重载的时间轴,把这条时间轴的动画赋值给之前的轴上面

  • 添加生气的表情,待机动画

系统交互

选中对话系统Flowchart,看到Variables创建两个bool变量,起好名称对应刚刚的分支对话 默认为假

分支中选择一条Set Variable事件,改变刚才设置的变量,把刚刚的设置为True,另一个节点也是

动画控制器添加自定义脚本

using Fungus;//对话系统的头文件
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;//控制器的头文件
public class Controller : MonoBehaviour
{
   //动画控制器组价
   public PlayableDirector Aniamtioncontroller;
   //存放制作好的TimeLines
   public PlayableAsset[] TimeLines;
   //保存TimeLine保存对应的名称
   public string[] timeLineNames;
   //公开对话系统
   public Flowchart flowchart;
   // Update is called once per frame
   void Update()
   {
       //遍历每一条TimeLine
       for (int i = 0; i < TimeLines.Length; i++)
       {
           //timeline对应的为真
           if (flowchart.GetBooleanVariable(timeLineNames[i]))
           {
               //播放动画
               Aniamtioncontroller.Play(TimeLines[i]);
               //改成false
               flowchart.SetBooleanVariable(timeLineNames[i], false);
           }
       }
   }
}



## 下载一个中文的2019








>![](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c7cff7fda323408f8c2145b981bd06ff~tplv-k3u1fbpfcp-zoom-1.image)