Initial Commit
This commit is contained in:
parent
53eb92e9af
commit
270ab7d11f
15341 changed files with 700234 additions and 0 deletions
|
@ -0,0 +1,87 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Timeline;
|
||||
using Object = UnityEngine.Object;
|
||||
|
||||
namespace UnityEditor.Timeline.Signals
|
||||
{
|
||||
class SignalManager : IDisposable
|
||||
{
|
||||
static SignalManager m_Instance;
|
||||
readonly List<SignalAsset> m_assets = new List<SignalAsset>();
|
||||
|
||||
internal static SignalManager instance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (m_Instance == null)
|
||||
{
|
||||
m_Instance = new SignalManager();
|
||||
m_Instance.Refresh();
|
||||
}
|
||||
|
||||
return m_Instance;
|
||||
}
|
||||
|
||||
set { m_Instance = value; }
|
||||
}
|
||||
|
||||
internal SignalManager()
|
||||
{
|
||||
SignalAsset.OnEnableCallback += Register;
|
||||
}
|
||||
|
||||
public static IEnumerable<SignalAsset> assets
|
||||
{
|
||||
get
|
||||
{
|
||||
foreach (var asset in instance.m_assets)
|
||||
{
|
||||
if (asset != null)
|
||||
yield return asset;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static SignalAsset CreateSignalAssetInstance(string path)
|
||||
{
|
||||
var newSignal = ScriptableObject.CreateInstance<SignalAsset>();
|
||||
newSignal.name = Path.GetFileNameWithoutExtension(path);
|
||||
|
||||
var asset = AssetDatabase.LoadMainAssetAtPath(path) as SignalAsset;
|
||||
if (asset != null)
|
||||
{
|
||||
TimelineUndo.PushUndo(asset, Styles.UndoCreateSignalAsset);
|
||||
EditorUtility.CopySerialized(newSignal, asset);
|
||||
Object.DestroyImmediate(newSignal);
|
||||
return asset;
|
||||
}
|
||||
|
||||
AssetDatabase.CreateAsset(newSignal, path);
|
||||
return newSignal;
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
SignalAsset.OnEnableCallback -= Register;
|
||||
}
|
||||
|
||||
void Register(SignalAsset a)
|
||||
{
|
||||
m_assets.Add(a);
|
||||
}
|
||||
|
||||
void Refresh()
|
||||
{
|
||||
var guids = AssetDatabase.FindAssets("t:SignalAsset");
|
||||
foreach (var g in guids)
|
||||
{
|
||||
var path = AssetDatabase.GUIDToAssetPath(g);
|
||||
var asset = AssetDatabase.LoadAssetAtPath<SignalAsset>(path);
|
||||
m_assets.Add(asset);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue