update CCK to 3.10, fixing unity 2021 crash :)
This commit is contained in:
parent
48a978fa2a
commit
d11e0fb3a9
492 changed files with 2165204 additions and 437687 deletions
60
Assets/ABI.CCK/Scripts/Editor/CCK_GizmoFix.cs
Executable file
60
Assets/ABI.CCK/Scripts/Editor/CCK_GizmoFix.cs
Executable file
|
@ -0,0 +1,60 @@
|
|||
using System.Reflection;
|
||||
using UnityEditor;
|
||||
using System;
|
||||
|
||||
namespace ABI.CCK.Scripts.Editor
|
||||
{
|
||||
public static class CCK_GizmoFix
|
||||
{
|
||||
// TODO: Unity 2022.1 will have a new API for this, so we can remove this reflection hack.
|
||||
// https://docs.unity3d.com/2022.2/Documentation/ScriptReference/GizmoUtility.SetGizmoEnabled.html
|
||||
|
||||
#region SetGizmoIconEnabled Reflection Hack
|
||||
|
||||
private static MethodInfo _setIconEnabledMethod;
|
||||
|
||||
private static MethodInfo SetIconEnabledMethod
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_setIconEnabledMethod != null)
|
||||
return _setIconEnabledMethod;
|
||||
|
||||
_setIconEnabledMethod = Assembly.GetAssembly(typeof(UnityEditor.Editor))
|
||||
?.GetType("UnityEditor.AnnotationUtility")
|
||||
?.GetMethod("SetIconEnabled", BindingFlags.Static | BindingFlags.NonPublic);
|
||||
|
||||
return _setIconEnabledMethod;
|
||||
}
|
||||
}
|
||||
|
||||
private static void SetGizmoIconEnabled(Type type, bool on)
|
||||
{
|
||||
if (SetIconEnabledMethod == null) return;
|
||||
|
||||
const int MONO_BEHAVIOR_CLASS_ID = 114; // https://docs.unity3d.com/Manual/ClassIDReference.html
|
||||
// "Annotation not found" - type has no custom gizmo icon set.
|
||||
SetIconEnabledMethod.Invoke(null, new object[] { MONO_BEHAVIOR_CLASS_ID, type.Name, on ? 1 : 0 });
|
||||
|
||||
// if Unity.VisualScripting is installed, we have to use this method instead:
|
||||
// AnnotationUtility.Annotation annotation = AnnotationUtility.GetAnnotation(type);
|
||||
// if (annotation != null) annotation.iconEnabled = on;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
internal static void SetGizmoIcons(bool show)
|
||||
{
|
||||
bool proceed = EditorUtility.DisplayDialog(
|
||||
"CCK :: Gizmo Fix",
|
||||
$"Are you sure you want to {(show ? "enable" : "disable")} all Gizmo icons? This will {(show ? "show" : "hide")} all `CVR` component icons in the scene view.",
|
||||
"Yes", "No");
|
||||
|
||||
if (!proceed)
|
||||
return;
|
||||
|
||||
foreach (Type type in CCK_ComponentRegistry.GetMonoBehaviourComponentTypes())
|
||||
SetGizmoIconEnabled(type, show);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue