Пример #1
0
        static VRM10Expression CreateAndSaveExpression(ExpressionPreset preset, string dir)
        {
            var clip = ScriptableObject.CreateInstance <VRM10Expression>();

            clip.name = preset.ToString();
            var path      = System.IO.Path.Combine(dir, $"{preset}.asset");
            var unityPath = UnityPath.FromFullpath(path);

            unityPath.CreateAsset(clip);
            var loaded = unityPath.LoadAsset <VRM10Expression>();

            return(loaded);
        }
Пример #2
0
        static VRM10Object CreateAsset(string path)
        {
            if (string.IsNullOrEmpty(path))
            {
                return(null);
            }
            var unityPath = UnityPath.FromFullpath(path);

            if (!unityPath.IsUnderAssetsFolder)
            {
                EditorUtility.DisplayDialog("error", "The specified path is not inside of Assets/", "OK");
                return(null);
            }

            var asset = ScriptableObject.CreateInstance <VRM10Object>();

            unityPath.CreateAsset(asset);

            var loaded = unityPath.LoadAsset <VRM10Object>();

            return(loaded);
        }
Пример #3
0
        static string ToAssetPath(string path)
        {
            var assetPath = UnityPath.FromFullpath(path);

            return(assetPath.Value);
        }
Пример #4
0
        static VRM10Object CreateAsset(string path, Dictionary <ExpressionPreset, VRM10Expression> expressions)
        {
            if (string.IsNullOrEmpty(path))
            {
                return(null);
            }
            var unityPath = UnityPath.FromFullpath(path);

            if (!unityPath.IsUnderAssetsFolder)
            {
                EditorUtility.DisplayDialog("error", "The specified path is not inside of Assets/", "OK");
                return(null);
            }

            var asset = ScriptableObject.CreateInstance <VRM10Object>();

            foreach (var kv in expressions)
            {
                switch (kv.Key)
                {
                case ExpressionPreset.aa: asset.Expression.Aa = kv.Value; break;

                case ExpressionPreset.ih: asset.Expression.Ih = kv.Value; break;

                case ExpressionPreset.ou: asset.Expression.Ou = kv.Value; break;

                case ExpressionPreset.ee: asset.Expression.Ee = kv.Value; break;

                case ExpressionPreset.oh: asset.Expression.Oh = kv.Value; break;

                case ExpressionPreset.happy: asset.Expression.Happy = kv.Value; break;

                case ExpressionPreset.angry: asset.Expression.Angry = kv.Value; break;

                case ExpressionPreset.sad: asset.Expression.Sad = kv.Value; break;

                case ExpressionPreset.relaxed: asset.Expression.Relaxed = kv.Value; break;

                case ExpressionPreset.surprised: asset.Expression.Surprised = kv.Value; break;

                case ExpressionPreset.blink: asset.Expression.Blink = kv.Value; break;

                case ExpressionPreset.blinkLeft: asset.Expression.BlinkLeft = kv.Value; break;

                case ExpressionPreset.blinkRight: asset.Expression.BlinkRight = kv.Value; break;

                case ExpressionPreset.lookUp: asset.Expression.LookUp = kv.Value; break;

                case ExpressionPreset.lookDown: asset.Expression.LookDown = kv.Value; break;

                case ExpressionPreset.lookLeft: asset.Expression.LookLeft = kv.Value; break;

                case ExpressionPreset.lookRight: asset.Expression.LookRight = kv.Value; break;

                case ExpressionPreset.neutral: asset.Expression.Neutral = kv.Value; break;
                }
            }

            unityPath.CreateAsset(asset);
            AssetDatabase.Refresh();
            var loaded = unityPath.LoadAsset <VRM10Object>();

            return(loaded);
        }