/// <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>(); }
/// <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>(); }
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); }
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); }
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)); }
public static int GetCameraPresetIndexOfType(CameraPresets Type) { return(Conversions.ToInteger(Type) - 1); }