public static GameObject CreateSceneCachePlayerPrefab(string path)
        {
            GameObject go = CreateSceneCachePlayer(path);

            if (go == null)
            {
                return(null);
            }

            // export materials & animation and generate prefab
            SceneCachePlayer player = go.GetComponent <SceneCachePlayer>();

            player.UpdatePlayer();
            player.ExportMaterials(false, true);
            player.ResetTimeAnimation();
            player.handleAssets = false;
            SceneData scene = player.GetLastScene();

            if (!scene.submeshesHaveUniqueMaterial)
            {
                MeshSyncPlayerConfig config = player.GetConfig();
                config.SyncMaterialList = false;
            }

            string prefabPath = string.Format("Assets/SceneCache/{0}.prefab", go.name);

            PrefabUtility.SaveAsPrefabAssetAndConnect(go, prefabPath, InteractionMode.AutomatedAction);
            return(go);
        }