Пример #1
0
 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...");
     }
 }
Пример #2
0
    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();
    }