狗屎Minimax坏我代码
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Sirenix.OdinInspector;
|
||||
using UniRx;
|
||||
using UnityEngine;
|
||||
|
||||
namespace SLSUtilities.Feedback
|
||||
@@ -10,7 +12,7 @@ namespace SLSUtilities.Feedback
|
||||
/// 包含多条轨道(Track),每条轨道包含按时间排列的片段(Clip)。
|
||||
/// </summary>
|
||||
[CreateAssetMenu(fileName = "NewFeedbackData", menuName = "SLS/Feedback/FeedbackData")]
|
||||
public class FeedbackData : SerializedScriptableObject
|
||||
public partial class FeedbackData : SerializedScriptableObject
|
||||
{
|
||||
/// <summary>
|
||||
/// 父级集合引用,由 FeedbackDataCollection 自动维护。
|
||||
@@ -27,7 +29,6 @@ namespace SLSUtilities.Feedback
|
||||
/// <summary>
|
||||
/// 全局默认的时间设置。Clip 可选择覆盖此设置。
|
||||
/// </summary>
|
||||
[Title("Time Settings (Default)")]
|
||||
public FeedbackTimeSettings defaultTimeSettings = new FeedbackTimeSettings();
|
||||
|
||||
/// <summary>
|
||||
@@ -67,4 +68,47 @@ namespace SLSUtilities.Feedback
|
||||
Debug.Log($"[FeedbackData] Previewing '{feedbackName}' (Duration: {TotalDuration:F2}s)");
|
||||
}
|
||||
}
|
||||
|
||||
public partial class FeedbackData
|
||||
{
|
||||
public FeedbackTrack Track(string name)
|
||||
{
|
||||
FeedbackTrack track = tracks.FirstOrDefault(t => t.trackName == name);
|
||||
if (track == null)
|
||||
{
|
||||
Debug.LogWarning($"[FeedbackData] Track '{name}' not found in FeedbackData '{feedbackName}'.");
|
||||
}
|
||||
return track;
|
||||
}
|
||||
|
||||
public FeedbackClip Clip(string trackName, Func<FeedbackClip, bool> predicate)
|
||||
{
|
||||
FeedbackTrack track = Track(trackName);
|
||||
if (track == null) return null;
|
||||
|
||||
FeedbackClip clip = track.clips.FirstOrDefault(predicate);
|
||||
if (clip == null)
|
||||
{
|
||||
Debug.LogWarning($"[FeedbackData] Clip matching predicate not found in Track '{trackName}' of FeedbackData '{feedbackName}'.");
|
||||
}
|
||||
return clip;
|
||||
}
|
||||
|
||||
public FeedbackClip Clip<T>(string trackName) where T : FeedbackActionBase
|
||||
{
|
||||
return Clip(trackName, c => c.action.GetType() == typeof(T));
|
||||
}
|
||||
|
||||
public FeedbackClip Clip(string trackName, string clipName)
|
||||
{
|
||||
return Clip(trackName, c => c.clipName == clipName);
|
||||
}
|
||||
|
||||
public T Action<T>(string trackName) where T : FeedbackActionBase
|
||||
{
|
||||
FeedbackTrack track = Track(trackName);
|
||||
FeedbackClip clip = track?.clips.FirstOrDefault(c => c.action.GetType() == typeof(T));
|
||||
return clip?.action as T;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user