public static CompositeAnimation CreateCompositeAnimation() { string path = EditorUtility.SaveFilePanel( "New Composite Animation", LastSaveFolder, "Untitled", "asset" ); if (!string.IsNullOrEmpty(path)) { path = GetRelativePath(path, Application.dataPath); CompositeAnimation animation = ScriptableObject.CreateInstance <CompositeAnimation>(); AudioAnimation audioAnimation = ScriptableObject.CreateInstance <AudioAnimation>(); audioAnimation.Elements = new AudioAnimationElement[0]; audioAnimation.FrameCount = 30; audioAnimation.FramesPerSecond = 12; animation.AudioAnimation = audioAnimation; var animationPath = path.Replace(".asset", "_comp.asset"); AssetDatabase.CreateAsset(animation, animationPath); var audioAnimationPath = path.Replace(".asset", "_audio.asset"); AssetDatabase.CreateAsset(audioAnimation, audioAnimationPath); AssetDatabase.SaveAssets(); return(AssetDatabase.LoadAssetAtPath(animationPath, typeof(CompositeAnimation)) as CompositeAnimation); } return(null); }
public static AudioAnimation CreateAudioAnimation() { string path = EditorUtility.SaveFilePanel( "New Audio Animation", LastSaveFolder, "Untitled", "asset" ); if (!string.IsNullOrEmpty(path)) { path = GetRelativePath(path, Application.dataPath); int folderEndIndex = path.LastIndexOf("/"); LastSaveFolder = path.Remove(folderEndIndex, path.Length - folderEndIndex); AudioAnimation animation = ScriptableObject.CreateInstance <AudioAnimation>(); animation.Elements = new AudioAnimationElement[0]; animation.FrameCount = 30; animation.FramesPerSecond = 12; AssetDatabase.CreateAsset(animation, path); AssetDatabase.SaveAssets(); return(AssetDatabase.LoadAssetAtPath(path, typeof(AudioAnimation)) as AudioAnimation); } return(null); }
public void OnMeshAnimatorPlay(MeshAnimator animator) { this.Animation = this.GetNextAudioAnimation(); OnMeshAnimatorJump(animator); }