private bool TimeOnAudioClip(TimeSpan t, CutsceneAsset asset) { float audioClipStartInSec = (float)new TimeSpan(asset.AudioClipStartTimeTicks).TotalSeconds; float audioClipEndInSec = audioClipStartInSec + asset.AudioClip.length; return(t.TotalSeconds >= audioClipStartInSec && t.TotalSeconds <= audioClipEndInSec); }
/// <summary> Copy another CutsceneAsset values to this one. </summary> /// <param name="toCopy">CutsceneAsset to copy.</param> public void Assign(CutsceneAsset toCopy) { TimeTicks = toCopy.TimeTicks; ScrollPos = toCopy.ScrollPos; Scenes = toCopy.Scenes; DurationTicks = toCopy.DurationTicks; Zoom = toCopy.Zoom; AudioClip = toCopy.AudioClip; AudioClipStartTimeTicks = toCopy.AudioClipStartTimeTicks; TimeLabelsData = toCopy.TimeLabelsData; }
/// <summary> Load asset from file. </summary> /// <param name="path">Path of saving data collection.</param> /// <param name="name">Name of saving data collection.</param> /// <returns>True, if save successful, false otherwise. </returns> public bool LoadAsset(string path, string name) { CutsceneAsset temp = Resources.Load(Path.Combine(path, name)) as CutsceneAsset; if (temp == null) { return(false); } else { Assign(temp); return(true); } }
/// <summary> Create and save data to asset. Works only when in edit mode. </summary> /// <param name="path">Path of saving data collection.</param> /// <param name="name">Name of saving data collection.</param> public void CreateAsset(string path, string name) { #if UNITY_EDITOR string newPath = Path.Combine(path, name); CutsceneAsset asset = CreateInstance <CutsceneAsset>(); asset.Assign(this); int count = 0; object testObject = AssetDatabase.LoadAssetAtPath <CutsceneAsset>(newPath + EXT); while (testObject != null) { count++; testObject = AssetDatabase.LoadAssetAtPath <CutsceneAsset>(newPath + " " + (count + 1) + EXT); } if (count > 0) { newPath += " " + (count + 1); } AssetDatabase.CreateAsset(asset, newPath + EXT); AssetDatabase.SaveAssets(); #endif }