static void OnSceneSaved(Scene scene, string s) { if (GestureDisplay.getVRCSceneAvatar() != null) { KAPProfile kp = new KAPProfile(GestureDisplay.getVRCSceneAvatar()); kp.saveFile(); } else { Debug.LogWarning("your avatar is hidden! you might make him visible again, so that KAP can save his performance statistics..."); } }
public static void BuildOverride(GameObject selected) { progressval = 0f; updateProgressBar("generating folders...", 0.0f); EditorSceneManager.SaveCurrentModifiedScenesIfUserWantsTo(); nameval = selected.name; if (!AssetDatabase.IsValidFolder("Assets/KAPAvatars/" + nameval)) { AssetDatabase.CreateFolder("Assets/KAPAvatars", nameval); } createKAPFolder("Animations"); createKAPFolder("Audio"); createKAPFolder("Materials"); createKAPFolder("Textures"); createKAPFolder("Shaders"); createKAPFolder("Controllers"); //Generated Folders updateProgressBar("copying avatar...", 1.0f); string sourcepath = AssetDatabase.GetAssetPath(selected); AssetDatabase.CopyAsset(sourcepath, "Assets/KAPAvatars/" + nameval + "/" + nameval + ".fbx"); //Copied Avatar updateProgressBar("generating animation files...", 1.0f); CreateAnimationFiles(nameval); //Generated Animation Files updateProgressBar("instantiating avatar...", 1.0f); EditorApplication.NewScene(); GameObject newobj = (GameObject)AssetDatabase.LoadAssetAtPath("Assets/KAPAvatars/" + nameval + "/" + nameval + ".fbx", typeof(GameObject)); newobj = (GameObject)Instantiate(newobj, new Vector3(0, 0, 0), Quaternion.identity); //Instantiated Avatar updateProgressBar("instantiating viewpointsetter...", 1.0f); GameObject view = (GameObject)AssetDatabase.LoadAssetAtPath("Assets/KorikasAvatarPlugin/Korikas Avatar Plugin/Examples/Prefabs/ViewpointSetter.prefab", typeof(GameObject)); view = (GameObject)Instantiate(view, new Vector3(0, 0, 0), Quaternion.identity); view.name = "ViewpointSetter"; //Instantiated ViewpointSetter updateProgressBar("creating KAPprofile...", 1.0f); newobj.name = nameval; KAPProfile kp = new KAPProfile(newobj); kp.saveFile(); //Created KAPprofile updateProgressBar("deleting old file and adding the VRC_AvatarDescriptor...", 1); AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(selected)); VRC_AvatarDescriptor vrcad = newobj.AddComponent(typeof(VRC_AvatarDescriptor)) as VRC_AvatarDescriptor; AnimatorOverrideController Ovrd = (AnimatorOverrideController)AssetDatabase.LoadAssetAtPath("Assets/KAPAvatars/" + nameval + "/" + nameval + ".overrideController", typeof(AnimatorOverrideController)); vrcad.CustomSittingAnims = Ovrd; vrcad.CustomStandingAnims = Ovrd; addLipSync(newobj); //Deleted old File and added the VRC_AvatarDescriptor updateProgressBar("saving scene and refreshing files...", 1.0f); EditorApplication.SaveScene("Assets/KAPAvatars/" + nameval + "/" + nameval + ".unity"); AssetDatabase.Refresh(); //Saved Scene and refreshed Files EditorUtility.ClearProgressBar(); }