Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
 public void OnMeshAnimatorPlay(MeshAnimator animator)
 {
     this.Animation = this.GetNextAudioAnimation();
     OnMeshAnimatorJump(animator);
 }