예제 #1
0
 public void SavePreset(bool overwriteExisting)
 {
     ScriptableObjectUtility.SaveAsset(this, name, PumkinsAvatarTools.MainFolderPath + "/Resources/Presets/Blendshapes/", overwriteExisting);
     PumkinsPresetManager.LoadPresets <PumkinsBlendshapePreset>();
 }
예제 #2
0
        /// <summary>
        /// Creates new preset based on camera and reference, applies all settings from this object then saves it to assets
        /// </summary>
        public bool SavePreset(GameObject referenceObject, Camera camera, bool overwriteExisting)
        {
            PumkinsCameraPreset p = ScriptableObjectUtility.CreateAndSaveAsset <PumkinsCameraPreset>(name, PumkinsAvatarTools.MainFolderPath + "/Resources/Presets/Cameras/", overwriteExisting) as PumkinsCameraPreset;

            if (!p)
            {
                return(false);
            }

            p.name       = name;
            p.offsetMode = offsetMode;

            if (p.offsetMode == CameraOffsetMode.AvatarRoot)
            {
                CalculateOffsets(referenceObject.transform.root, camera);
            }
            else if (p.offsetMode == CameraOffsetMode.Transform)
            {
                CalculateOffsets(referenceObject.transform, camera);
            }
            else
            {
                CalculateOffsets(PumkinsAvatarTools.SelectedAvatar.GetComponent <VRC_AvatarDescriptor>(), camera);
            }

            p.positionOffset       = positionOffset;
            p.rotationAnglesOffset = rotationAnglesOffset;
            p.transformPath        = transformPath;

            p.useOverlay = PumkinsAvatarTools.Instance.bThumbnails_use_camera_overlay;

            if (p.useOverlay)
            {
                p.overlayImagePath = PumkinsAvatarTools.Instance._overlayPath;
                p.overlayImageTint = PumkinsAvatarTools.Instance.cameraOverlayImageTint;
            }

            p.useBackground  = PumkinsAvatarTools.Instance.bThumbnails_use_camera_background;
            p.backgroundType = PumkinsAvatarTools.Instance.cameraBackgroundType;

            if (p.useBackground)
            {
                switch (p.backgroundType)
                {
                case PumkinsAvatarTools.CameraBackgroundOverrideType.Color:
                    p.backgroundColor = PumkinsAvatarTools.Instance._thumbsCamBgColor;
                    break;

                case PumkinsAvatarTools.CameraBackgroundOverrideType.Image:
                    p.backgroundImagePath = PumkinsAvatarTools.Instance._backgroundPath;
                    p.backgroundImageTint = PumkinsAvatarTools.Instance.cameraBackgroundImageTint;
                    break;

                case PumkinsAvatarTools.CameraBackgroundOverrideType.Skybox:
                    p.backgroundMaterial = RenderSettings.skybox;
                    break;

                default:
                    break;
                }
            }
            EditorUtility.SetDirty(p);
            AssetDatabase.SaveAssets();
            AssetDatabase.Refresh();

            PumkinsPresetManager.LoadPresets <PumkinsCameraPreset>();
            return(true);
        }