48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Playables;
|
|
|
|
public class BossTimelineBinder : MonoBehaviour
|
|
{
|
|
[Serializable]
|
|
public class BossActionNode
|
|
{
|
|
[Header("动作名,仅用于显示")]
|
|
public string actionName;
|
|
|
|
[Header("动作节点")]
|
|
public GameObject actionNode;
|
|
|
|
[Header("用于搜索 Timeline 的关键字。比如 attacked01 / attacked02 / show / attack")]
|
|
public string timelineKeyword;
|
|
}
|
|
|
|
[Serializable]
|
|
public class BossEntry
|
|
{
|
|
[Header("Boss 名称,仅用于显示")]
|
|
public string bossName;
|
|
|
|
[Header("外层 Boss 根节点,比如 atlantis_boss_2")]
|
|
public GameObject bossRoot;
|
|
|
|
[Header("挂在外层 Boss 根节点上的 PlayableDirector")]
|
|
public PlayableDirector director;
|
|
|
|
[Header("动作容器,一般是 bossRoot 下名为 boss 的子节点")]
|
|
public Transform actionContainer;
|
|
|
|
[Header("动作列表")]
|
|
public List<BossActionNode> actionNodes = new List<BossActionNode>();
|
|
}
|
|
|
|
[Header("Timeline 总目录,例如 Assets/.../EventBossFightAtlantis/Timeline")]
|
|
public string timelineRootFolder;
|
|
|
|
[Header("Boss 列表")]
|
|
public List<BossEntry> bosses = new List<BossEntry>();
|
|
|
|
[HideInInspector] public int selectedBossIndex = 0;
|
|
[HideInInspector] public int selectedActionIndex = 0;
|
|
} |