83 lines
4.3 KiB
C#
83 lines
4.3 KiB
C#
using UnityEngine;
|
||
using UnityEngine.Playables;
|
||
using UnityEngine.Timeline;
|
||
using System.Collections.Generic;
|
||
|
||
namespace game
|
||
{
|
||
/// <summary>
|
||
/// 1v1扇耳光大赛TV演示面板 Event1v1BattleSlapTvPopupPanel
|
||
/// 真正的战斗演示面板,本版本只实现基础UI,Timeline/Spine系统留到后续版本
|
||
/// </summary>
|
||
public partial class Event1v1BattleSlapTvPopupPanel
|
||
{
|
||
#region SerializeField
|
||
[Header("关闭面板")]
|
||
[SerializeField][Min(0f)] private float closePanelDelaySeconds = 2f;
|
||
[SerializeField][Min(0f)] private float firstMatchShowSeconds = 10f;
|
||
|
||
[Header("Animation")]
|
||
[SerializeField][Min(0)] private float hpBarChangeTime = 0.3f;
|
||
[SerializeField][Min(0)] private float hpTextChangeTime = 1f;
|
||
/// <summary>罐头品质 >= 该值时使用重击 Timeline(attack/hit 的 _2 档)。</summary>
|
||
[SerializeField] private int heavyHitQualityMin = 3;
|
||
[Header("Result Timeline (_resDirector) 播放前延时(秒)")]
|
||
[SerializeField][Min(0f)] private float ko_animation_delay;
|
||
[SerializeField][Min(0f)] private float defeat_animation_delay;
|
||
[SerializeField][Min(0f)] private float timeout_animation_delay;
|
||
|
||
[Header("攻击→受击间隔(先播攻击侧 Timeline,按秒数推进到「落点」后再播受击侧;双方仅此一点耦合,收招各自播不回拉双人 idle)")]
|
||
[SerializeField][Min(0f)] private float attackHitGapPlayerLight = 0.08f;
|
||
[SerializeField][Min(0f)] private float attackHitGapPlayerHeavy = 0.12f;
|
||
[SerializeField][Min(0f)] private float attackHitGapNpcLight = 0.08f;
|
||
[SerializeField][Min(0f)] private float attackHitGapNpcHeavy = 0.12f;
|
||
|
||
[Header("play Timeline")]
|
||
[SerializeField] private PlayableAsset eat_player;
|
||
[SerializeField] private PlayableAsset eat_player_buff;
|
||
/// <summary>循环待机;扇耳光流程里 hit2idle/攻击收招后以 Loop 播放且不阻塞后续 Timeline。</summary>
|
||
[SerializeField] private PlayableAsset idle_player;
|
||
[SerializeField] private PlayableAsset ko_player;
|
||
[SerializeField] private PlayableAsset win_player;
|
||
[SerializeField] private PlayableAsset attack_player_1;
|
||
[SerializeField] private PlayableAsset attack_player_2;
|
||
/// <summary>受击后过渡到站姿,播完再接 <see cref="idle_player"/> 循环更自然。</summary>
|
||
[SerializeField] private PlayableAsset hit2idle_player_1;
|
||
[SerializeField] private PlayableAsset hit2idle_player_2;
|
||
/// <summary>受击到 KO 的过渡段,播完再接 <see cref="ko_player"/>。</summary>
|
||
[SerializeField] private PlayableAsset hit2ko_player_1;
|
||
[SerializeField] private PlayableAsset hit2ko_player_2;
|
||
[SerializeField] private PlayableAsset hit_player_1;
|
||
[SerializeField] private PlayableAsset hit_player_2;
|
||
|
||
[Header("enemy Timeline")]
|
||
/// <summary>循环待机;受击侧 hit2idle 后以 Loop 播放且不阻塞后续逻辑。</summary>
|
||
[SerializeField] private PlayableAsset idle_enemy;
|
||
[SerializeField] private PlayableAsset ko_enemy;
|
||
[SerializeField] private PlayableAsset win_enemy;
|
||
[SerializeField] private PlayableAsset attack_enemy_1;
|
||
[SerializeField] private PlayableAsset attack_enemy_2;
|
||
/// <summary>受击后过渡到站姿,播完再接 <see cref="idle_enemy"/> 循环。</summary>
|
||
[SerializeField] private PlayableAsset hit2idle_enemy_1;
|
||
[SerializeField] private PlayableAsset hit2idle_enemy_2;
|
||
/// <summary>受击到 KO 的过渡段,播完再接 <see cref="ko_enemy"/>。</summary>
|
||
[SerializeField] private PlayableAsset hit2ko_enemy_1;
|
||
[SerializeField] private PlayableAsset hit2ko_enemy_2;
|
||
[SerializeField] private PlayableAsset hit_enemy_1;
|
||
[SerializeField] private PlayableAsset hit_enemy_2;
|
||
|
||
[Header("result Timeline")]
|
||
[SerializeField] private PlayableAsset ko_player_res;
|
||
[SerializeField] private PlayableAsset defeat_enemy_res;
|
||
[SerializeField] private PlayableAsset timeout_player_res;
|
||
|
||
|
||
[Header("Signal")]
|
||
[SerializeField] private SignalAsset signalAsset;
|
||
|
||
[SerializeField]
|
||
private List<Event1v1BattleSlapTvData> tvDatas = new List<Event1v1BattleSlapTvData>();
|
||
|
||
#endregion
|
||
}
|
||
} |