Esempio n. 1
0
        static public BlobAssetReference <MotionBlobData> ConvertToBlobData(this MotionClip motionClip)
        {
            using (var builder = new BlobBuilder(Allocator.Temp))
            {
                var srcMotions = motionClip.MotionData.Motions;

                ref var dstRoot = ref builder.ConstructRoot <MotionBlobData>();
                copyMotionToBlob(ref motionClip.MotionData, ref dstRoot, builder);

                //makeBoneIds( motionClip.StreamPaths, ref dstRoot, builder );

                return(builder.CreateBlobAssetReference <MotionBlobData>(Allocator.Persistent));
            }
        static void makeMotionEnum(MotionClip motionClip)
        {
            string replace_(string src) =>
            src
            .Replace(' ', '_')
            .Replace('(', '_').Replace(')', '_').Replace('[', '_').Replace(']', '_')
            .Replace("+", "Plus").Replace("-", "Minus")
            ;

            var qNameList =
                from x in motionClip.ClipNames
                select replace_(x)
            ;

            var name = replace_(motionClip.name);

            ConstCreator.Create($"{name}", qNameList, $"Assets/{name}_indices.cs");
        }
        /// <summary>
        /// モーションクリップをアセットとして保存する。
        /// </summary>
        static void save(UnityEngine.Object[] selectedObjects, MotionClip motionClip)
        {
            // 渡されたアセットと同じ場所のパス生成

            var srcFilePath = AssetDatabase.GetAssetPath(selectedObjects.OfType <GameObject>().First());

            var folderPath = Path.GetDirectoryName(srcFilePath);

            var fileName = Path.GetFileNameWithoutExtension(srcFilePath);

            var dstFilePath = folderPath + $"/Motion {fileName}.asset";


            // アセットとして MotionClip を生成

            AssetDatabase.CreateAsset(motionClip, dstFilePath);

            AssetDatabase.Refresh();
        }