Exemple #1
0
        /// <summary>
        /// Destroys loose preset objects that live in memory and not in assets
        /// </summary>
        public static void CleanupPresetsOfType <T>() where T : PumkinPreset
        {
            var tools = PumkinsAvatarTools.Instance;

            foreach (var p in GameObject.FindObjectsOfType <T>())
            {
                if (p && string.IsNullOrEmpty(AssetDatabase.GetAssetPath(p)))
                {
                    Debug.Log("Destroying orphanned " + typeof(T).Name);
                    GameObject.DestroyImmediate(p);
                }
            }

            if (typeof(T) == typeof(PumkinsCameraPreset))
            {
                CameraPresets.RemoveAll(o => o == default(PumkinsCameraPreset) || string.IsNullOrEmpty(AssetDatabase.GetAssetPath(o)) || string.IsNullOrEmpty(o.name));
            }
            else if (typeof(T) == typeof(PumkinsPosePreset))
            {
                PosePresets.RemoveAll(o => o == default(PumkinsPosePreset) || string.IsNullOrEmpty(AssetDatabase.GetAssetOrScenePath(o)) || string.IsNullOrEmpty(o.name));
            }
            else if (typeof(T) == typeof(PumkinsBlendshapePreset))
            {
                BlendshapePresets.RemoveAll(o => o == default(PumkinsBlendshapePreset) || string.IsNullOrEmpty(AssetDatabase.GetAssetOrScenePath(o)) || string.IsNullOrEmpty(o.name));
            }

            PumkinsAvatarTools.RefreshPresetIndex <T>();
        }
Exemple #2
0
        /// <summary>
        /// Destroys loose preset objects that live in memory and not in assets
        /// </summary>
        public static void CleanupPresetsOfType <T>() where T : PumkinPreset
        {
            var    tools    = PumkinsAvatarTools.Instance;
            string typeName = typeof(T).Name;
            var    presets  = GameObject.FindObjectsOfType <T>();

            Type t  = typeof(T);
            Type tP = typeof(PumkinPreset);

            foreach (var preset in presets)
            {
                if (preset && !Helpers.IsAssetInAssets(preset))
                {
                    PumkinsAvatarTools.LogVerbose($"Destroying orphanned {typeName}");
                    Helpers.DestroyAppropriate(preset);
                }
            }

            if (typeof(T) == typeof(PumkinsCameraPreset) || t == tP)
            {
                CameraPresets.RemoveAll(o => o == default(PumkinsCameraPreset) || !Helpers.IsAssetInAssets(o));
            }
            if (typeof(T) == typeof(PumkinsPosePreset) || t == tP)
            {
                PosePresets.RemoveAll(o => o == default(PumkinsPosePreset) || !Helpers.IsAssetInAssets(o));
            }
            if (typeof(T) == typeof(PumkinsBlendshapePreset) || t == tP)
            {
                BlendshapePresets.RemoveAll(o => o == default(PumkinsBlendshapePreset) || !Helpers.IsAssetInAssets(o));
            }

            PumkinsAvatarTools.RefreshPresetIndex <T>();
        }
Exemple #3
0
        public static T FindPreset <T>(string name) where T : PumkinPreset
        {
            object preset = null;

            if (typeof(T) == typeof(PumkinsCameraPreset))
            {
                preset = CameraPresets.Find(o => o.name.ToLower() == name.ToLower());
            }
            else if (typeof(T) == typeof(PumkinsCameraPreset))
            {
                preset = PosePresets.Find(o => o.name.ToLower() == name.ToLower());
            }
            else if (typeof(T) == typeof(PumkinsBlendshapePreset))
            {
                preset = BlendshapePresets.Find(o => o.name.ToLower() == name.ToLower());
            }

            return((T)preset);
        }
Exemple #4
0
        public static int GetPresetIndex <T>(string name) where T : PumkinPreset
        {
            int i = -1;

            if (typeof(T) == typeof(PumkinsCameraPreset))
            {
                i = CameraPresets.FindIndex(o => o.name.ToLower() == name.ToLower());
            }
            else if (typeof(T) == typeof(PumkinsPosePreset))
            {
                i = PosePresets.FindIndex(o => o.name.ToLower() == name.ToLower());
            }
            else if (typeof(T) == typeof(PumkinsBlendshapePreset))
            {
                i = BlendshapePresets.FindIndex(o => o.name.ToLower() == name.ToLower());
            }

            return(i);
        }
Exemple #5
0
        public static int GetPresetIndex <T>(T preset) where T : PumkinPreset
        {
            int i = -1;

            if (typeof(T) == typeof(PumkinsCameraPreset))
            {
                i = CameraPresets.IndexOf(preset as PumkinsCameraPreset);
            }
            else if (typeof(T) == typeof(PumkinsPosePreset))
            {
                i = PosePresets.IndexOf(preset as PumkinsPosePreset);
            }
            else if (typeof(T) == typeof(PumkinsBlendshapePreset))
            {
                i = BlendshapePresets.IndexOf(preset as PumkinsBlendshapePreset);
            }

            return(i);
        }
        public void LoadPresetData()
        {
            if (!Directory.Exists(PresetFolder))
            {
                Directory.CreateDirectory(PresetFolder);
            }

            string[] presets = Directory.GetFiles(PresetFolder, "*.xml");
            foreach (string presetname in presets)
            {
                try
                {
                    var preset = CameraPreset.Load(presetname);
                    if (preset != null)
                    {
                        CameraPresets.Add(preset);
                    }
                }
                catch (Exception e)
                {
                    Log.Error("Error loading preset :" + presetname, e);
                }
            }
        }
 public CameraPreset GetPreset(string name)
 {
     return(string.IsNullOrEmpty(name) ? null : CameraPresets.FirstOrDefault(cameraPreset => cameraPreset.Name == name));
 }
Exemple #8
0
 public static int GetCameraPresetIndexOfType(CameraPresets Type)
 {
     return(Conversions.ToInteger(Type) - 1);
 }