diff --git a/plug-ins/Apple.Accessibility/Apple.Accessibility_Unity/Assets/Apple.Accessibility/AccessibilityNode.cs b/plug-ins/Apple.Accessibility/Apple.Accessibility_Unity/Assets/Apple.Accessibility/AccessibilityNode.cs index 97d914dc..a8c0856b 100644 --- a/plug-ins/Apple.Accessibility/Apple.Accessibility_Unity/Assets/Apple.Accessibility/AccessibilityNode.cs +++ b/plug-ins/Apple.Accessibility/Apple.Accessibility_Unity/Assets/Apple.Accessibility/AccessibilityNode.cs @@ -388,32 +388,60 @@ private void OnDestroy() UnregisterAXElement(this); } - private static Dictionary axElements = new Dictionary(); + private static Dictionary axElements = new Dictionary(); static internal void RegisterAXElement(AccessibilityNode obj) { - if (axElements.ContainsKey(obj.gameObject.GetInstanceID())) +#if UNITY_6000_4_OR_NEWER + if (axElements.ContainsKey(EntityId.ToULong(obj.gameObject.GetEntityId()))) +#else + if (axElements.ContainsKey((ulong)obj.gameObject.GetInstanceID())) +#endif { return; } - axElements.Add(obj.gameObject.GetInstanceID(), obj); + +#if UNITY_6000_4_OR_NEWER + axElements.Add(EntityId.ToULong(obj.gameObject.GetEntityId()), obj); + AccessibilityNode parent = obj._accessibilityParent(); + ulong parentId = EntityId.ToULong(EntityId.None); +#else + axElements.Add((ulong)obj.gameObject.GetInstanceID(), obj); AccessibilityNode parent = obj._accessibilityParent(); - int parentId = -1; + ulong parentId = 0; +#endif if (parent) { - parentId = parent.gameObject.GetInstanceID(); +#if UNITY_6000_4_OR_NEWER + parentId = EntityId.ToULong(parent.gameObject.GetEntityId()); +#else + parentId = (ulong)parent.gameObject.GetInstanceID(); +#endif } + #if (UNITY_IOS || UNITY_TVOS) && !UNITY_EDITOR - _UnityAX_RegisterElementWithIdentifier(obj.gameObject.GetInstanceID(), parentId, parent != null); +#if UNITY_6000_4_OR_NEWER + _UnityAX_RegisterElementWithIdentifier(EntityId.ToULong(obj.gameObject.GetEntityId()), parentId, parent != null); +#else + _UnityAX_RegisterElementWithIdentifier((ulong)obj.gameObject.GetInstanceID(), parentId, parent != null); +#endif #endif } static internal void UnregisterAXElement(AccessibilityNode obj) { - axElements.Remove(obj.gameObject.GetInstanceID()); +#if UNITY_6000_4_OR_NEWER + axElements.Remove(EntityId.ToULong(obj.gameObject.GetEntityId())); +#else + axElements.Remove((ulong)obj.gameObject.GetInstanceID()); +#endif #if (UNITY_IOS || UNITY_TVOS) && !UNITY_EDITOR - _UnityAX_UnregisterElementWithIdentifier(obj.gameObject.GetInstanceID()); +#if UNITY_6000_4_OR_NEWER + _UnityAX_UnregisterElementWithIdentifier(EntityId.ToULong(obj.gameObject.GetEntityId())); +#else + _UnityAX_UnregisterElementWithIdentifier((ulong)obj.gameObject.GetInstanceID()); +#endif #endif } @@ -869,13 +897,13 @@ private static void RegisterCallbacks() #if (UNITY_IOS || UNITY_TVOS) && !UNITY_EDITOR [DllImport("__Internal")] private static extern void _UnityAX_InitializeAXRuntime(); - [DllImport("__Internal")] private static extern void _UnityAX_RegisterElementWithIdentifier(int identifier, int parentIdentifier, bool hasParent); - [DllImport("__Internal")] private static extern void _UnityAX_UnregisterElementWithIdentifier(int identifier); + [DllImport("__Internal")] private static extern void _UnityAX_RegisterElementWithIdentifier(ulong identifier, ulong parentIdentifier, bool hasParent); + [DllImport("__Internal")] private static extern void _UnityAX_UnregisterElementWithIdentifier(ulong identifier); - private delegate string AccessibilityFrameDelegate(int identifier); + private delegate string AccessibilityFrameDelegate(ulong identifier); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityFrame(AccessibilityFrameDelegate actionDelegate); [AOT.MonoPInvokeCallback(typeof(AccessibilityFrameDelegate))] - private static string _UnityAX_accessibilityFrame(int identifier) + private static string _UnityAX_accessibilityFrame(ulong identifier) { Rect rect = Rect.zero; if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) @@ -885,10 +913,10 @@ private static string _UnityAX_accessibilityFrame(int identifier) return _stringForRect(rect); } - private delegate string AccessibilityLabelDelegate(int identifier); + private delegate string AccessibilityLabelDelegate(ulong identifier); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityLabel(AccessibilityLabelDelegate actionDelegate); [AOT.MonoPInvokeCallback(typeof(AccessibilityLabelDelegate))] - private static string _UnityAX_accessibilityLabel(int identifier) + private static string _UnityAX_accessibilityLabel(ulong identifier) { if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) { @@ -897,10 +925,10 @@ private static string _UnityAX_accessibilityLabel(int identifier) return null; } - private delegate ulong AccessibilityTraitsDelegate(int identifier); + private delegate ulong AccessibilityTraitsDelegate(ulong identifier); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityTraits(AccessibilityTraitsDelegate actionDelegate); [AOT.MonoPInvokeCallback(typeof(AccessibilityTraitsDelegate))] - private static ulong _UnityAX_accessibilityTraits(int identifier) + private static ulong _UnityAX_accessibilityTraits(ulong identifier) { if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) { @@ -909,10 +937,10 @@ private static ulong _UnityAX_accessibilityTraits(int identifier) return 0; } - private delegate bool IsAccessibilityElementDelegate(int identifier); + private delegate bool IsAccessibilityElementDelegate(ulong identifier); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityIsElement(IsAccessibilityElementDelegate actionDelegate); [AOT.MonoPInvokeCallback(typeof(IsAccessibilityElementDelegate))] - private static bool _UnityAX_IsAccessibilityElement(int identifier) + private static bool _UnityAX_IsAccessibilityElement(ulong identifier) { if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) { @@ -921,10 +949,10 @@ private static bool _UnityAX_IsAccessibilityElement(int identifier) return true; } - private delegate string AccessibilityHintDelegate(int identifier); + private delegate string AccessibilityHintDelegate(ulong identifier); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityHint(AccessibilityHintDelegate actionDelegate); [AOT.MonoPInvokeCallback(typeof(AccessibilityHintDelegate))] - private static string _UnityAX_AccessibilityHint(int identifier) + private static string _UnityAX_AccessibilityHint(ulong identifier) { if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) { @@ -933,10 +961,10 @@ private static string _UnityAX_AccessibilityHint(int identifier) return null; } - private delegate string AccessibilityValueDelegate(int identifier); + private delegate string AccessibilityValueDelegate(ulong identifier); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityValue(AccessibilityValueDelegate actionDelegate); [AOT.MonoPInvokeCallback(typeof(AccessibilityValueDelegate))] - private static string _UnityAX_AccessibilityValue(int identifier) + private static string _UnityAX_AccessibilityValue(ulong identifier) { if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) { @@ -945,10 +973,10 @@ private static string _UnityAX_AccessibilityValue(int identifier) return null; } - private delegate string AccessibilityIdentifierDelegate(int identifier); + private delegate string AccessibilityIdentifierDelegate(ulong identifier); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityIdentifier(AccessibilityIdentifierDelegate identifierDelegate); [AOT.MonoPInvokeCallback(typeof(AccessibilityIdentifierDelegate))] - private static string _UnityAX_AccessibilityIdentifier(int identifier) + private static string _UnityAX_AccessibilityIdentifier(ulong identifier) { if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) { @@ -957,10 +985,10 @@ private static string _UnityAX_AccessibilityIdentifier(int identifier) return null; } - private delegate bool AccessibilityViewIsModalDelegate(int identifier); + private delegate bool AccessibilityViewIsModalDelegate(ulong identifier); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityViewIsModal(AccessibilityViewIsModalDelegate viewIsModalDelegate); [AOT.MonoPInvokeCallback(typeof(AccessibilityViewIsModalDelegate))] - private static bool _UnityAX_AccessibilityViewIsModal(int identifier) + private static bool _UnityAX_AccessibilityViewIsModal(ulong identifier) { if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) { @@ -969,10 +997,10 @@ private static bool _UnityAX_AccessibilityViewIsModal(int identifier) return false; } - private delegate string AccessibilityActivationPointDelegate(int identifier); + private delegate string AccessibilityActivationPointDelegate(ulong identifier); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityActivationPoint(AccessibilityActivationPointDelegate actionDelegate); [AOT.MonoPInvokeCallback(typeof(AccessibilityActivationPointDelegate))] - private static string _UnityAX_AccessibilityActivationPoint(int identifier) + private static string _UnityAX_AccessibilityActivationPoint(ulong identifier) { Vector2 value = Vector2.positiveInfinity; if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) @@ -982,10 +1010,10 @@ private static string _UnityAX_AccessibilityActivationPoint(int identifier) return value == Vector2.positiveInfinity ? null : _stringForPoint(value); } - private delegate bool AccessibilityScrollDelegate(int identifier, int direction); + private delegate bool AccessibilityScrollDelegate(ulong identifier, int direction); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityScroll(AccessibilityScrollDelegate actionDelegate); [AOT.MonoPInvokeCallback(typeof(AccessibilityScrollDelegate))] - private static bool _UnityAX_AccessibilityScroll(int identifier, int direction) + private static bool _UnityAX_AccessibilityScroll(ulong identifier, int direction) { if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) { @@ -994,10 +1022,10 @@ private static bool _UnityAX_AccessibilityScroll(int identifier, int direction) return false; } - private delegate void AccessibilityIncrementDelegate(int identifier); + private delegate void AccessibilityIncrementDelegate(ulong identifier); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityIncrement(AccessibilityIncrementDelegate actionDelegate); [AOT.MonoPInvokeCallback(typeof(AccessibilityIncrementDelegate))] - private static void _UnityAX_AccessibilityIncrement(int identifier) + private static void _UnityAX_AccessibilityIncrement(ulong identifier) { if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) { @@ -1005,10 +1033,10 @@ private static void _UnityAX_AccessibilityIncrement(int identifier) } } - private delegate void AccessibilityDecrementDelegate(int identifier); + private delegate void AccessibilityDecrementDelegate(ulong identifier); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityDecrement(AccessibilityDecrementDelegate actionDelegate); [AOT.MonoPInvokeCallback(typeof(AccessibilityDecrementDelegate))] - private static void _UnityAX_AccessibilityDecrement(int identifier) + private static void _UnityAX_AccessibilityDecrement(ulong identifier) { if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) { @@ -1016,10 +1044,10 @@ private static void _UnityAX_AccessibilityDecrement(int identifier) } } - private delegate ulong AccessibilityCustomActionsCountDelegate(int identifier); + private delegate ulong AccessibilityCustomActionsCountDelegate(ulong identifier); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityCustomActionsCount(AccessibilityCustomActionsCountDelegate actionDelegate); [AOT.MonoPInvokeCallback(typeof(AccessibilityCustomActionsCountDelegate))] - private static ulong _UnityAX_AccessibilityCustomActionCount(int identifier) + private static ulong _UnityAX_AccessibilityCustomActionCount(ulong identifier) { if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) { @@ -1032,10 +1060,10 @@ private static ulong _UnityAX_AccessibilityCustomActionCount(int identifier) return 0; } - private delegate string AccessibilityCustomActionNameDelegate(int identifier, int idx); + private delegate string AccessibilityCustomActionNameDelegate(ulong identifier, int idx); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityCustomActionName(AccessibilityCustomActionNameDelegate actionDelegate); - [AOT.MonoPInvokeCallback(typeof(AccessibilityPerformCustomActionDelegate))] - private static string _UnityAX_CustomActionName(int identifier, int idx) + [AOT.MonoPInvokeCallback(typeof(AccessibilityCustomActionNameDelegate))] + private static string _UnityAX_CustomActionName(ulong identifier, int idx) { if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) { @@ -1055,10 +1083,10 @@ private static string _UnityAX_CustomActionName(int identifier, int idx) return null; } - private delegate bool AccessibilityPerformCustomActionDelegate(int identifier, int idx); + private delegate bool AccessibilityPerformCustomActionDelegate(ulong identifier, int idx); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityPerformCustomAction(AccessibilityPerformCustomActionDelegate actionDelegate); [AOT.MonoPInvokeCallback(typeof(AccessibilityPerformCustomActionDelegate))] - private static bool _UnityAX_PerformCustomAction(int identifier, int idx) + private static bool _UnityAX_PerformCustomAction(ulong identifier, int idx) { if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) { @@ -1078,10 +1106,10 @@ private static bool _UnityAX_PerformCustomAction(int identifier, int idx) return false; } - private delegate bool AccessibilityPerformMagicTapDelegate(int identifier); + private delegate bool AccessibilityPerformMagicTapDelegate(ulong identifier); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityPerformMagicTap(AccessibilityPerformMagicTapDelegate actionDelegate); [AOT.MonoPInvokeCallback(typeof(AccessibilityPerformMagicTapDelegate))] - internal static bool _UnityAX_AccessibilityPerformMagicTap(int identifier) + internal static bool _UnityAX_AccessibilityPerformMagicTap(ulong identifier) { if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) { @@ -1090,10 +1118,10 @@ internal static bool _UnityAX_AccessibilityPerformMagicTap(int identifier) return false; } - private delegate bool AccessibilityPerformEscapeDelegate(int identifier); + private delegate bool AccessibilityPerformEscapeDelegate(ulong identifier); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityPerformEscape(AccessibilityPerformEscapeDelegate actionDelegate); [AOT.MonoPInvokeCallback(typeof(AccessibilityPerformEscapeDelegate))] - internal static bool _UnityAX_AccessibilityPerformEscape(int identifier) + internal static bool _UnityAX_AccessibilityPerformEscape(ulong identifier) { if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) { @@ -1102,10 +1130,10 @@ internal static bool _UnityAX_AccessibilityPerformEscape(int identifier) return false; } - private delegate bool AccessibilityActivateDelegate(int identifier); + private delegate bool AccessibilityActivateDelegate(ulong identifier); [DllImport("__Internal")] private static extern void _UnityAX_registerAccessibilityActivate(AccessibilityActivateDelegate actionDelegate); [AOT.MonoPInvokeCallback(typeof(AccessibilityActivateDelegate))] - private static bool _UnityAX_AccessibilityActivate(int identifier) + private static bool _UnityAX_AccessibilityActivate(ulong identifier) { if (axElements.TryGetValue(identifier, out AccessibilityNode obj)) { diff --git a/plug-ins/Apple.Accessibility/Apple.Accessibility_Unity/Assets/Apple.Accessibility/Tests/AccessibilityTests/AccessibilityNode_TestSuite.cs b/plug-ins/Apple.Accessibility/Apple.Accessibility_Unity/Assets/Apple.Accessibility/Tests/AccessibilityTests/AccessibilityNode_TestSuite.cs index 2165417d..60dfca8f 100644 --- a/plug-ins/Apple.Accessibility/Apple.Accessibility_Unity/Assets/Apple.Accessibility/Tests/AccessibilityTests/AccessibilityNode_TestSuite.cs +++ b/plug-ins/Apple.Accessibility/Apple.Accessibility_Unity/Assets/Apple.Accessibility/Tests/AccessibilityTests/AccessibilityNode_TestSuite.cs @@ -58,7 +58,11 @@ public IEnumerator Test_AccessibilityLabel() AccessibilityNode axObject = ButtonAXObject(); UnityEngine.Assertions.Assert.AreEqual(axObject.AccessibilityLabel, "Button"); - bool succeeded = AccessibilityTests.RuniOSSideUnitTestWithKeyPathExpectingStringResult(axObject.gameObject.GetInstanceID(), "accessibilityLabel", "Button"); +#if UNITY_6000_4_OR_NEWER + bool succeeded = AccessibilityTests.RuniOSSideUnitTestWithKeyPathExpectingStringResult(EntityId.ToULong(axObject.gameObject.GetEntityId()), "accessibilityLabel", "Button"); +#else + bool succeeded = AccessibilityTests.RuniOSSideUnitTestWithKeyPathExpectingStringResult((ulong)axObject.gameObject.GetInstanceID(), "accessibilityLabel", "Button"); +#endif UnityEngine.Assertions.Assert.IsTrue(succeeded); yield return null; @@ -75,7 +79,11 @@ public IEnumerator Test_AccessibilityValue() AccessibilityNode axObject = ButtonAXObject(); UnityEngine.Assertions.Assert.AreEqual(axObject.AccessibilityValue, "ButtonValue"); - bool succeeded = AccessibilityTests.RuniOSSideUnitTestWithKeyPathExpectingStringResult(axObject.gameObject.GetInstanceID(), "accessibilityValue", "ButtonValue"); +#if UNITY_6000_4_OR_NEWER + bool succeeded = AccessibilityTests.RuniOSSideUnitTestWithKeyPathExpectingStringResult(EntityId.ToULong(axObject.gameObject.GetEntityId()), "accessibilityValue", "ButtonValue"); +#else + bool succeeded = AccessibilityTests.RuniOSSideUnitTestWithKeyPathExpectingStringResult((ulong)axObject.gameObject.GetInstanceID(), "accessibilityValue", "ButtonValue"); +#endif UnityEngine.Assertions.Assert.IsTrue(succeeded); yield return null; @@ -92,7 +100,11 @@ public IEnumerator Test_AccessibilityHint() AccessibilityNode axObject = ButtonAXObject(); UnityEngine.Assertions.Assert.AreEqual(axObject.AccessibilityHint, "ButtonHint"); - bool succeeded = AccessibilityTests.RuniOSSideUnitTestWithKeyPathExpectingStringResult(axObject.gameObject.GetInstanceID(), "accessibilityHint", "ButtonHint"); +#if UNITY_6000_4_OR_NEWER + bool succeeded = AccessibilityTests.RuniOSSideUnitTestWithKeyPathExpectingStringResult(EntityId.ToULong(axObject.gameObject.GetEntityId()), "accessibilityHint", "ButtonHint"); +#else + bool succeeded = AccessibilityTests.RuniOSSideUnitTestWithKeyPathExpectingStringResult((ulong)axObject.gameObject.GetInstanceID(), "accessibilityHint", "ButtonHint"); +#endif UnityEngine.Assertions.Assert.IsTrue(succeeded); yield return null; @@ -135,7 +147,11 @@ public IEnumerator Test_PerformMagicTap() return true; }; - bool tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformMagicTap(axObject.gameObject.GetInstanceID()); +#if UNITY_6000_4_OR_NEWER + bool tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformMagicTap(EntityId.ToULong(axObject.gameObject.GetEntityId())); +#else + bool tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformMagicTap((ulong)axObject.gameObject.GetInstanceID()); +#endif expectedMagicTapCount += 1; UnityEngine.Assertions.Assert.AreEqual(magicTapCount, expectedMagicTapCount); UnityEngine.Assertions.Assert.IsTrue(tapSucceeded); @@ -156,7 +172,11 @@ public IEnumerator Test_PerformMagicTap() return false; }; - tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformMagicTap(axObject.gameObject.GetInstanceID()); +#if UNITY_6000_4_OR_NEWER + tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformMagicTap(EntityId.ToULong(axObject.gameObject.GetEntityId())); +#else + tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformMagicTap((ulong)axObject.gameObject.GetInstanceID()); +#endif expectedMagicTapCount += 1; UnityEngine.Assertions.Assert.AreEqual(magicTapCount, expectedMagicTapCount); UnityEngine.Assertions.Assert.IsFalse(tapSucceeded); @@ -171,7 +191,11 @@ public IEnumerator Test_PerformMagicTap() //Unimplemented tap axObject.onAccessibilityPerformMagicTap = null; - tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformMagicTap(axObject.gameObject.GetInstanceID()); +#if UNITY_6000_4_OR_NEWER + tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformMagicTap(EntityId.ToULong(axObject.gameObject.GetEntityId())); +#else + tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformMagicTap((ulong)axObject.gameObject.GetInstanceID()); +#endif UnityEngine.Assertions.Assert.AreEqual(magicTapCount, expectedMagicTapCount); UnityEngine.Assertions.Assert.IsFalse(tapSucceeded); #if UNITY_IOS && !UNITY_EDITOR @@ -205,7 +229,11 @@ public IEnumerator Test_PerformEscape() return true; }; - bool tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformEscape(axObject.gameObject.GetInstanceID()); +#if UNITY_6000_4_OR_NEWER + bool tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformEscape(EntityId.ToULong(axObject.gameObject.GetEntityId())); +#else + bool tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformEscape((ulong)axObject.gameObject.GetInstanceID()); +#endif expectedEscapeCount += 1; UnityEngine.Assertions.Assert.AreEqual(EscapeCount, expectedEscapeCount); UnityEngine.Assertions.Assert.IsTrue(tapSucceeded); @@ -226,7 +254,11 @@ public IEnumerator Test_PerformEscape() return false; }; - tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformEscape(axObject.gameObject.GetInstanceID()); +#if UNITY_6000_4_OR_NEWER + tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformEscape(EntityId.ToULong(axObject.gameObject.GetEntityId())); +#else + tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformEscape((ulong)axObject.gameObject.GetInstanceID()); +#endif expectedEscapeCount += 1; UnityEngine.Assertions.Assert.AreEqual(EscapeCount, expectedEscapeCount); UnityEngine.Assertions.Assert.IsFalse(tapSucceeded); @@ -241,7 +273,11 @@ public IEnumerator Test_PerformEscape() //Unimplemented tap axObject.onAccessibilityPerformEscape = null; - tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformEscape(axObject.gameObject.GetInstanceID()); +#if UNITY_6000_4_OR_NEWER + tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformEscape(EntityId.ToULong(axObject.gameObject.GetEntityId())); +#else + tapSucceeded = AccessibilityRuntime._UnityAX_AccessibilityPerformEscape((ulong)axObject.gameObject.GetInstanceID()); +#endif UnityEngine.Assertions.Assert.AreEqual(EscapeCount, expectedEscapeCount); UnityEngine.Assertions.Assert.IsFalse(tapSucceeded); #if UNITY_IOS && !UNITY_EDITOR diff --git a/plug-ins/Apple.Accessibility/Apple.Accessibility_Unity/Assets/Apple.Accessibility/Tests/AccessibilityTests/AccessibilityTests.cs b/plug-ins/Apple.Accessibility/Apple.Accessibility_Unity/Assets/Apple.Accessibility/Tests/AccessibilityTests/AccessibilityTests.cs index c708a632..be72fdcc 100644 --- a/plug-ins/Apple.Accessibility/Apple.Accessibility_Unity/Assets/Apple.Accessibility/Tests/AccessibilityTests/AccessibilityTests.cs +++ b/plug-ins/Apple.Accessibility/Apple.Accessibility_Unity/Assets/Apple.Accessibility/Tests/AccessibilityTests/AccessibilityTests.cs @@ -9,8 +9,7 @@ public class AccessibilityTests : MonoBehaviour private static extern bool _UnityAX_RuniOSSideUnitTestWithName(string name); [DllImport("__Internal")] - private static extern bool _UnityAX_RuniOSSideUnitTestWithKeyPathExpectingStringResult(int identifier, string keyPath, string expected); - + private static extern bool _UnityAX_RuniOSSideUnitTestWithKeyPathExpectingStringResult(ulong identifier, string keyPath, string expected); public static bool RuniOSUnitTestWithName(string name) { @@ -19,17 +18,17 @@ public static bool RuniOSUnitTestWithName(string name) #else return true; #endif - } + } - public static bool RuniOSSideUnitTestWithKeyPathExpectingStringResult(int identifier, string keyPath, string expected) + public static bool RuniOSSideUnitTestWithKeyPathExpectingStringResult(ulong identifier, string keyPath, string expected) { #if (UNITY_IOS || UNITY_TVOS) && !UNITY_EDITOR - return _UnityAX_RuniOSSideUnitTestWithKeyPathExpectingStringResult( identifier, keyPath, expected); + return _UnityAX_RuniOSSideUnitTestWithKeyPathExpectingStringResult(identifier, keyPath, expected); #else return true; #endif } - + [DllImport("__Internal")] private static extern void _UnityAX_PostFeatureEnabledNotification(string name, bool enabled); diff --git a/plug-ins/Apple.Accessibility/Native/AppleAccessibility/AppleAccessibilityBridge.m b/plug-ins/Apple.Accessibility/Native/AppleAccessibility/AppleAccessibilityBridge.m index 92f0d737..3c6538e5 100644 --- a/plug-ins/Apple.Accessibility/Native/AppleAccessibility/AppleAccessibilityBridge.m +++ b/plug-ins/Apple.Accessibility/Native/AppleAccessibility/AppleAccessibilityBridge.m @@ -41,79 +41,78 @@ APPLE_ACCESSIBILITY_EXTERN void _UnityAX_PostPageScrolledNotification(const char #pragma mark Elements -typedef char *(* AccessibilityFrameDelegate)(int32_t); +typedef char *(* AccessibilityFrameDelegate)(uint64_t); static AccessibilityFrameDelegate __axFrameDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityFrame(AccessibilityFrameDelegate delegate) { __axFrameDelegate = delegate; } -typedef char *(* AccessibilityLabelDelegate)(int32_t); +typedef char *(* AccessibilityLabelDelegate)(uint64_t); static AccessibilityLabelDelegate __axLabelDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityLabel(AccessibilityLabelDelegate delegate) { __axLabelDelegate = delegate; } -typedef uint64_t (* AccessibilityTraitsDelegate)(int32_t); +typedef uint64_t (* AccessibilityTraitsDelegate)(uint64_t); static AccessibilityTraitsDelegate __axTraitsDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityTraits(AccessibilityTraitsDelegate delegate) { __axTraitsDelegate = delegate; } -typedef bool (* AccessibilityIsElementDelegate)(int32_t); +typedef bool (* AccessibilityIsElementDelegate)(uint64_t); static AccessibilityIsElementDelegate __axIsElementDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityIsElement(AccessibilityIsElementDelegate delegate) { __axIsElementDelegate = delegate; } -typedef char *(* AccessibilityHintDelegate)(int32_t); +typedef char *(* AccessibilityHintDelegate)(uint64_t); static AccessibilityHintDelegate __axHintDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityHint(AccessibilityHintDelegate delegate) { __axHintDelegate = delegate; } -typedef char *(* AccessibilityValueDelegate)(int32_t); +typedef char *(* AccessibilityValueDelegate)(uint64_t); static AccessibilityValueDelegate __axValueDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityValue(AccessibilityValueDelegate delegate) { __axValueDelegate = delegate; } -typedef char *(* AccessibilityIdentifierDelegate)(int32_t); +typedef char *(* AccessibilityIdentifierDelegate)(uint64_t); static AccessibilityIdentifierDelegate __axIdentifierDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityIdentifier(AccessibilityIdentifierDelegate delegate) { __axIdentifierDelegate = delegate; } -typedef bool (* AccessibilityViewIsModalDelegate)(int32_t); +typedef bool (* AccessibilityViewIsModalDelegate)(uint64_t); static AccessibilityViewIsModalDelegate __axViewIsModalDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityViewIsModal(AccessibilityViewIsModalDelegate delegate) { __axViewIsModalDelegate = delegate; } -typedef char *(* AccessibilityActivationPointDelegate)(int32_t); +typedef char *(* AccessibilityActivationPointDelegate)(uint64_t); static AccessibilityActivationPointDelegate __axActivationPointDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityActivationPoint(AccessibilityActivationPointDelegate delegate) { __axActivationPointDelegate = delegate; } -typedef uint64_t (* AccessibilityCustomActionsCountDelegate)(int32_t); +typedef uint64_t (* AccessibilityCustomActionsCountDelegate)(uint64_t); static AccessibilityCustomActionsCountDelegate __axCustomActionsCountDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityCustomActionsCount(AccessibilityCustomActionsCountDelegate delegate) { __axCustomActionsCountDelegate = delegate; } -typedef bool (* AccessibilityPerformCustomActionDelegate)(int32_t, int32_t); +typedef bool (* AccessibilityPerformCustomActionDelegate)(uint64_t, int32_t); static AccessibilityPerformCustomActionDelegate __axPerformCustomActionDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityPerformCustomAction(AccessibilityPerformCustomActionDelegate delegate) { __axPerformCustomActionDelegate = delegate; } -typedef char *(* AccessibilityCustomActionNameDelegate)(int32_t, int32_t); +typedef char *(* AccessibilityCustomActionNameDelegate)(uint64_t, int32_t); static AccessibilityCustomActionNameDelegate __axCustomActionNameDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityCustomActionName(AccessibilityCustomActionNameDelegate delegate) { __axCustomActionNameDelegate = delegate; } -typedef bool (* AccessibilityScrollDelegate)(int32_t, uint32_t); +typedef bool (* AccessibilityScrollDelegate)(uint64_t, uint32_t); static AccessibilityScrollDelegate __axScrollDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityScroll(AccessibilityScrollDelegate delegate) { __axScrollDelegate = delegate; } -typedef bool (* AccessibilityPerformMagicTapDelegate)(int32_t); +typedef bool (* AccessibilityPerformMagicTapDelegate)(uint64_t); static AccessibilityPerformMagicTapDelegate __axPerformMagicTapDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityPerformMagicTap(AccessibilityPerformMagicTapDelegate delegate) { __axPerformMagicTapDelegate = delegate; } -typedef bool (* AccessibilityPerformEscapeDelegate)(int32_t); +typedef bool (* AccessibilityPerformEscapeDelegate)(uint64_t); static AccessibilityPerformEscapeDelegate __axPerformEscapeDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityPerformEscape(AccessibilityPerformEscapeDelegate delegate) { __axPerformEscapeDelegate = delegate; } -typedef bool (* AccessibilityActivateDelegate)(int32_t); +typedef bool (* AccessibilityActivateDelegate)(uint64_t); static AccessibilityActivateDelegate __axActivateDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityActivate(AccessibilityActivateDelegate delegate) { __axActivateDelegate = delegate; } -typedef void (* AccessibilityIncrementDelegate)(int32_t); +typedef void (* AccessibilityIncrementDelegate)(uint64_t); static AccessibilityIncrementDelegate __axIncrementDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityIncrement(AccessibilityIncrementDelegate delegate) { __axIncrementDelegate = delegate; } -typedef void (* AccessibilityDecrementDelegate)(int32_t); +typedef void (* AccessibilityDecrementDelegate)(uint64_t); static AccessibilityDecrementDelegate __axDecrementDelegate = NULL; APPLE_ACCESSIBILITY_EXTERN void _UnityAX_registerAccessibilityDecrement(AccessibilityDecrementDelegate delegate) { __axDecrementDelegate = delegate; } - #pragma mark Settings typedef void (* AccessibilityNotificationDelegate)(void); @@ -607,7 +606,7 @@ APPLE_ACCESSIBILITY_EXTERN void _UnityAX_InitializeAXRuntime(void) { return CGRectZero; } - char *rectStr = __axFrameDelegate((int32_t)identifier.integerValue); + char *rectStr = __axFrameDelegate((uint64_t)identifier.unsignedLongLongValue); return rectStr == NULL ? CGRectZero : CGRectFromString([NSString stringWithUTF8String:rectStr]); }]; [AppleAccessibilityRuntime.sharedInstance setUnityAccessibilityLabel:^NSString *(NSNumber *identifier) { @@ -615,7 +614,7 @@ APPLE_ACCESSIBILITY_EXTERN void _UnityAX_InitializeAXRuntime(void) { return nil; } - char *str = __axLabelDelegate((int32_t)identifier.integerValue); + char *str = __axLabelDelegate((uint64_t)identifier.unsignedLongLongValue); return str == NULL ? nil : [NSString stringWithUTF8String:str]; }]; [AppleAccessibilityRuntime.sharedInstance setUnityAccessibilityTraits:^UIAccessibilityTraits(NSNumber *identifier) { @@ -623,43 +622,21 @@ APPLE_ACCESSIBILITY_EXTERN void _UnityAX_InitializeAXRuntime(void) { return (uint64_t)0; } - return __axTraitsDelegate((int32_t)identifier.integerValue); - }]; - [AppleAccessibilityRuntime.sharedInstance setUnityAccessibilityCustomActionsCount:^uint64_t(NSNumber *identifier) { - if ( __axCustomActionsCountDelegate == NULL ) - { - return (uint64_t)0; - } - return __axCustomActionsCountDelegate((int32_t)identifier.integerValue); - }]; - [AppleAccessibilityRuntime.sharedInstance setUnityPerformCustomAction:^BOOL(NSNumber *identifier, NSNumber *idx) { - if ( __axPerformCustomActionDelegate == NULL ) - { - return NO; - } - return __axPerformCustomActionDelegate((int32_t)identifier.integerValue, (int32_t)idx.integerValue); - }]; - [AppleAccessibilityRuntime.sharedInstance setUnityCustomActionName:^NSString *(NSNumber *identifier, NSNumber *idx) { - if ( __axCustomActionNameDelegate == NULL ) - { - return nil; - } - char *str = __axCustomActionNameDelegate((int32_t)identifier.integerValue, (int32_t)idx.integerValue); - return str == NULL ? nil : [NSString stringWithUTF8String:str]; + return __axTraitsDelegate((uint64_t)identifier.unsignedLongLongValue); }]; [AppleAccessibilityRuntime.sharedInstance setUnityIsAccessibilityElement:^BOOL(NSNumber *identifier) { if ( __axIsElementDelegate == NULL ) { return YES; } - return __axIsElementDelegate((int32_t)identifier.integerValue); + return __axIsElementDelegate((uint64_t)identifier.unsignedLongLongValue); }]; [AppleAccessibilityRuntime.sharedInstance setUnityAccessibilityHint:^NSString *(NSNumber *identifier) { if ( __axHintDelegate == NULL ) { return nil; } - char *str = __axHintDelegate((int32_t)identifier.integerValue); + char *str = __axHintDelegate((uint64_t)identifier.unsignedLongLongValue); return str == NULL ? nil : [NSString stringWithUTF8String:str]; }]; [AppleAccessibilityRuntime.sharedInstance setUnityAccessibilityValue:^NSString *(NSNumber *identifier) { @@ -667,73 +644,95 @@ APPLE_ACCESSIBILITY_EXTERN void _UnityAX_InitializeAXRuntime(void) { return nil; } - char *str = __axValueDelegate((int32_t)identifier.integerValue); + char *str = __axValueDelegate((uint64_t)identifier.unsignedLongLongValue); return str == NULL ? nil : [NSString stringWithUTF8String:str]; }]; + [AppleAccessibilityRuntime.sharedInstance setUnityAccessibilityIdentifier:^NSString *(NSNumber *identifier) { + if ( __axIdentifierDelegate == NULL ) + { + return nil; + } + char *str = __axIdentifierDelegate((uint64_t)identifier.unsignedLongLongValue); + return str == NULL ? nil : [NSString stringWithUTF8String:str]; + }]; + [AppleAccessibilityRuntime.sharedInstance setUnityAccessibilityViewIsModal:^BOOL(NSNumber *identifier) { + if ( __axViewIsModalDelegate == NULL ) + { + return NO; + } + return __axViewIsModalDelegate((uint64_t)identifier.unsignedLongLongValue); + }]; [AppleAccessibilityRuntime.sharedInstance setUnityAccessibilityActivationPoint:^CGPoint(NSNumber *identifier) { if ( __axActivationPointDelegate == NULL ) { return kAXCenterPointDefaultPoint; } - char *pointStr = __axActivationPointDelegate((int32_t)identifier.integerValue); + char *pointStr = __axActivationPointDelegate((uint64_t)identifier.unsignedLongLongValue); return pointStr == NULL ? kAXCenterPointDefaultPoint : CGPointFromString([NSString stringWithUTF8String:pointStr]); }]; - [AppleAccessibilityRuntime.sharedInstance setUnityAccessibilityIdentifier:^NSString *(NSNumber *identifier) { - if ( __axIdentifierDelegate == NULL ) + [AppleAccessibilityRuntime.sharedInstance setUnityAccessibilityCustomActionsCount:^uint64_t(NSNumber *identifier) { + if ( __axCustomActionsCountDelegate == NULL ) { - return nil; + return (uint64_t)0; } - char *str = __axIdentifierDelegate((int32_t)identifier.integerValue); - return str == NULL ? nil : [NSString stringWithUTF8String:str]; + return __axCustomActionsCountDelegate((uint64_t)identifier.unsignedLongLongValue); }]; - [AppleAccessibilityRuntime.sharedInstance setUnityAccessibilityViewIsModal:^BOOL(NSNumber *identifier) { - if ( __axViewIsModalDelegate == NULL ) + [AppleAccessibilityRuntime.sharedInstance setUnityPerformCustomAction:^BOOL(NSNumber *identifier, NSNumber *idx) { + if ( __axPerformCustomActionDelegate == NULL ) { return NO; } - return __axViewIsModalDelegate((int32_t)identifier.integerValue); + return __axPerformCustomActionDelegate((uint64_t)identifier.unsignedLongLongValue, (int32_t)idx.integerValue); + }]; + [AppleAccessibilityRuntime.sharedInstance setUnityCustomActionName:^NSString *(NSNumber *identifier, NSNumber *idx) { + if ( __axCustomActionNameDelegate == NULL ) + { + return nil; + } + char *str = __axCustomActionNameDelegate((uint64_t)identifier.unsignedLongLongValue, (int32_t)idx.integerValue); + return str == NULL ? nil : [NSString stringWithUTF8String:str]; }]; [AppleAccessibilityRuntime.sharedInstance setUnityAccessibilityScroll:^BOOL(NSNumber *identifier, UIAccessibilityScrollDirection direction) { if ( __axScrollDelegate == NULL ) { return NO; } - return __axScrollDelegate((int32_t)identifier.integerValue, (int32_t)direction); + return __axScrollDelegate((uint64_t)identifier.unsignedLongLongValue, (int32_t)direction); }]; [AppleAccessibilityRuntime.sharedInstance setUnityAccessibilityPerformMagicTap:^BOOL(NSNumber *identifier) { if ( __axPerformMagicTapDelegate == NULL ) { return NO; } - return __axPerformMagicTapDelegate((int32_t)identifier.integerValue); + return __axPerformMagicTapDelegate((uint64_t)identifier.unsignedLongLongValue); }]; [AppleAccessibilityRuntime.sharedInstance setUnityAccessibilityPerformEscape:^BOOL(NSNumber *identifier) { if ( __axPerformEscapeDelegate == NULL ) { return NO; } - return __axPerformEscapeDelegate((int32_t)identifier.integerValue); + return __axPerformEscapeDelegate((uint64_t)identifier.unsignedLongLongValue); }]; [AppleAccessibilityRuntime.sharedInstance setUnityAccessibilityActivate:^BOOL(NSNumber *identifier) { if ( __axActivateDelegate == NULL ) { return NO; } - return __axActivateDelegate((int32_t)identifier.integerValue); + return __axActivateDelegate((uint64_t)identifier.unsignedLongLongValue); }]; [AppleAccessibilityRuntime.sharedInstance setUnityAccessibilityIncrement:^void(NSNumber *identifier) { if ( __axIncrementDelegate == NULL ) { return; } - __axIncrementDelegate((int32_t)identifier.integerValue); + __axIncrementDelegate((uint64_t)identifier.unsignedLongLongValue); }]; [AppleAccessibilityRuntime.sharedInstance setUnityAccessibilityDecrement:^void(NSNumber *identifier) { if ( __axDecrementDelegate == NULL ) { return; } - __axDecrementDelegate((int32_t)identifier.integerValue); + __axDecrementDelegate((uint64_t)identifier.unsignedLongLongValue); }]; }); } @@ -743,12 +742,12 @@ APPLE_ACCESSIBILITY_EXTERN void _UnityAX_PostUnityViewChanged(void) UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, nil); } -APPLE_ACCESSIBILITY_EXTERN void _UnityAX_RegisterElementWithIdentifier(int32_t identifier, int32_t parentIdentifier, bool hasParent) +APPLE_ACCESSIBILITY_EXTERN void _UnityAX_RegisterElementWithIdentifier(uint64_t identifier, uint64_t parentIdentifier, bool hasParent) { [AppleAccessibilityRuntime.sharedInstance registerAccessibilityElementWithIdentifier:@(identifier) parent: hasParent ? @(parentIdentifier) : nil hasParent:hasParent]; } -APPLE_ACCESSIBILITY_EXTERN void _UnityAX_UnregisterElementWithIdentifier(int32_t identifier) +APPLE_ACCESSIBILITY_EXTERN void _UnityAX_UnregisterElementWithIdentifier(uint64_t identifier) { [AppleAccessibilityRuntime.sharedInstance unregisterAccessibilityElementWithIdentifier:@(identifier)]; } @@ -758,7 +757,7 @@ APPLE_ACCESSIBILITY_EXTERN bool _UnityAX_RuniOSSideUnitTestWithName(const char * return [AppleAccessibilityRuntime.sharedInstance runUnitTestWithName:[NSString stringWithUTF8String:name]]; } -APPLE_ACCESSIBILITY_EXTERN bool _UnityAX_RuniOSSideUnitTestWithKeyPathExpectingStringResult(int32_t identifier, const char *keyPath, const char *expected) +APPLE_ACCESSIBILITY_EXTERN bool _UnityAX_RuniOSSideUnitTestWithKeyPathExpectingStringResult(uint64_t identifier, const char *keyPath, const char *expected) { return [AppleAccessibilityRuntime.sharedInstance runUnitTestForIdentifier:@(identifier) keyPath:[NSString stringWithUTF8String:keyPath] expected:[NSString stringWithUTF8String:expected]]; } diff --git a/plug-ins/Apple.Core/Apple.Core_Unity/Assets/Apple.Core/Editor/AppleBuildProfileEditor.cs b/plug-ins/Apple.Core/Apple.Core_Unity/Assets/Apple.Core/Editor/AppleBuildProfileEditor.cs index aef4ad7e..82c17ae8 100644 --- a/plug-ins/Apple.Core/Apple.Core_Unity/Assets/Apple.Core/Editor/AppleBuildProfileEditor.cs +++ b/plug-ins/Apple.Core/Apple.Core_Unity/Assets/Apple.Core/Editor/AppleBuildProfileEditor.cs @@ -180,7 +180,11 @@ public override void OnInspectorGUI() { if (_serializedDefaultInfoPlist.objectReferenceValue != null) { +#if UNITY_6000_4_OR_NEWER + string filePath = AssetDatabase.GetAssetPath(_serializedDefaultInfoPlist.objectReferenceValue.GetEntityId()); +#else string filePath = AssetDatabase.GetAssetPath(_serializedDefaultInfoPlist.objectReferenceValue.GetInstanceID()); +#endif if (!filePath.EndsWith(".plist")) { _serializedDefaultInfoPlist.objectReferenceValue = null; @@ -232,7 +236,11 @@ public override void OnInspectorGUI() EditorGUILayout.ObjectField(_serializedDefaultEntitlements, typeof(UnityEngine.Object), defaultEntitlementsLabel, GUILayout.MinWidth(_minLabelWidth)); if (EditorGUI.EndChangeCheck() && !(_serializedDefaultEntitlements.objectReferenceValue is null)) { +#if UNITY_6000_4_OR_NEWER + string filePath = AssetDatabase.GetAssetPath(_serializedDefaultEntitlements.objectReferenceValue.GetEntityId()); +#else string filePath = AssetDatabase.GetAssetPath(_serializedDefaultEntitlements.objectReferenceValue.GetInstanceID()); +#endif if (!filePath.EndsWith(".entitlements")) { _serializedDefaultEntitlements.objectReferenceValue = null; diff --git a/plug-ins/Apple.CoreHaptics/Apple.CoreHaptics_Unity/Assets/Apple.CoreHaptics/Editor/UnityPickers/AssetPicker.cs b/plug-ins/Apple.CoreHaptics/Apple.CoreHaptics_Unity/Assets/Apple.CoreHaptics/Editor/UnityPickers/AssetPicker.cs index 43404a18..a072e78a 100644 --- a/plug-ins/Apple.CoreHaptics/Apple.CoreHaptics_Unity/Assets/Apple.CoreHaptics/Editor/UnityPickers/AssetPicker.cs +++ b/plug-ins/Apple.CoreHaptics/Apple.CoreHaptics_Unity/Assets/Apple.CoreHaptics/Editor/UnityPickers/AssetPicker.cs @@ -129,7 +129,11 @@ private Type AssetType [SerializeField] private string nameFilter; +#if UNITY_6000_4_OR_NEWER + private HierarchyIterator hierarchyIterator; +#else private HierarchyProperty hierarchyProperty; +#endif private List loadedAssets; @@ -251,7 +255,11 @@ public static void PropertyField( buttonPos.xMin = buttonPos.xMax - EditorGUIUtility.singleLineHeight; var requesterWindow = focusedWindow; +#if UNITY_6000_4_OR_NEWER + string controlName = property.serializedObject.targetObject.GetEntityId() + "_" + property.propertyPath; +#else string controlName = property.serializedObject.targetObject.GetInstanceID() + "_" + property.propertyPath; +#endif var e = Event.current; bool showHotKey = GUI.GetNameOfFocusedControl() == controlName && @@ -929,6 +937,15 @@ private void UpdateAssetList() loadedAssets = new List(); loadedAssetsFlat.Clear(); +#if UNITY_6000_4_OR_NEWER + hierarchyIterator = new HierarchyIterator(HierarchyType.Assets); + hierarchyIterator.SetSearchFilter(GetFilter(), (int)SearchableEditorWindow.SearchMode.All); + + while (hierarchyIterator.Next(null)) + { + AddAssetInfo(hierarchyIterator); + } +#else hierarchyProperty = new HierarchyProperty(HierarchyType.Assets); hierarchyProperty.SetSearchFilter(GetFilter(), (int)SearchableEditorWindow.SearchMode.All); @@ -936,6 +953,7 @@ private void UpdateAssetList() { AddAssetInfo(hierarchyProperty); } +#endif FilterAssets(ref loadedAssets); loadedAssets.ForEach(SortChildren); @@ -967,9 +985,15 @@ private string GetFilter() return stringBuilder.ToString(); } +#if UNITY_6000_4_OR_NEWER + private void AddAssetInfo(HierarchyIterator hi) + { + var path = AssetDatabase.GUIDToAssetPath(hi.guid); +#else private void AddAssetInfo(HierarchyProperty hp) { var path = AssetDatabase.GUIDToAssetPath(hp.guid); +#endif var folders = path.Split('/'); var list = loadedAssets; HierarchyEntry parent = null; @@ -993,10 +1017,17 @@ private void AddAssetInfo(HierarchyProperty hp) } var hierarchyEntry = new HierarchyEntry { +#if UNITY_6000_4_OR_NEWER + Parent = parent, + Name = hi.name, + Path = path, + AssetGuid = hi.guid, +#else Parent = parent, Name = hp.name, Path = path, AssetGuid = hp.guid, +#endif }; list.Add(hierarchyEntry); } diff --git a/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/Editor/UnityPickers/AssetPicker.cs b/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/Editor/UnityPickers/AssetPicker.cs index debe2293..24f7b9a4 100644 --- a/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/Editor/UnityPickers/AssetPicker.cs +++ b/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/Editor/UnityPickers/AssetPicker.cs @@ -129,9 +129,13 @@ private Type AssetType [SerializeField] private string nameFilter; +#if UNITY_6000_4_OR_NEWER + private HierarchyIterator hierarchyIterator; +#else private HierarchyProperty hierarchyProperty; +#endif - private List loadedAssets; + private List loadedAssets; private readonly List loadedAssetsFlat = new List(); @@ -249,8 +253,12 @@ public static void PropertyField( buttonPos.xMin = buttonPos.xMax - EditorGUIUtility.singleLineHeight; var requesterWindow = focusedWindow; +#if UNITY_6000_4_OR_NEWER + string controlName = property.serializedObject.targetObject.GetEntityId() + "_" + property.propertyPath; +#else string controlName = property.serializedObject.targetObject.GetInstanceID() + "_" + property.propertyPath; - var e = Event.current; +#endif + var e = Event.current; bool showHotKey = GUI.GetNameOfFocusedControl() == controlName && e.type == EventType.KeyDown && @@ -919,6 +927,15 @@ private void UpdateAssetList() loadedAssets = new List(); loadedAssetsFlat.Clear(); +#if UNITY_6000_4_OR_NEWER + hierarchyIterator = new HierarchyIterator(HierarchyType.Assets); + hierarchyIterator.SetSearchFilter(GetFilter(), (int)SearchableEditorWindow.SearchMode.All); + + while (hierarchyIterator.Next(null)) + { + AddAssetInfo(hierarchyIterator); + } +#else hierarchyProperty = new HierarchyProperty(HierarchyType.Assets); hierarchyProperty.SetSearchFilter(GetFilter(), (int)SearchableEditorWindow.SearchMode.All); @@ -926,8 +943,9 @@ private void UpdateAssetList() { AddAssetInfo(hierarchyProperty); } +#endif - FilterAssets(ref loadedAssets); + FilterAssets(ref loadedAssets); loadedAssets.ForEach(SortChildren); loadedAssetsFlat.Clear(); @@ -957,10 +975,18 @@ private string GetFilter() return stringBuilder.ToString(); } - private void AddAssetInfo(HierarchyProperty hp) +#if UNITY_6000_4_OR_NEWER + private void AddAssetInfo(HierarchyIterator hi) +#else + private void AddAssetInfo(HierarchyProperty hp) +#endif { +#if UNITY_6000_4_OR_NEWER + var path = AssetDatabase.GUIDToAssetPath(hi.guid); +#else var path = AssetDatabase.GUIDToAssetPath(hp.guid); - var folders = path.Split('/'); +#endif + var folders = path.Split('/'); var list = loadedAssets; HierarchyEntry parent = null; for (int ii = 1; ii < folders.Length - 1; ii++) // 1 to skip Assets folder, -1 to skip asset name @@ -984,10 +1010,18 @@ private void AddAssetInfo(HierarchyProperty hp) var hierarchyEntry = new HierarchyEntry { Parent = parent, - Name = hp.name, - Path = path, - AssetGuid = hp.guid, - }; +#if UNITY_6000_4_OR_NEWER + Name = hi.name, +#else + Name = hp.name, +#endif + Path = path, +#if UNITY_6000_4_OR_NEWER + AssetGuid = hi.guid, +#else + AssetGuid = hp.guid, +#endif + }; list.Add(hierarchyEntry); } diff --git a/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/Runtime/PHASEListener.cs b/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/Runtime/PHASEListener.cs index 3add6fdc..b51fb19e 100644 --- a/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/Runtime/PHASEListener.cs +++ b/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/Runtime/PHASEListener.cs @@ -242,7 +242,11 @@ private void OnDrawGizmos() if (entry is PHASESpatialMixer) { PHASESpatialMixer mixer = entry as PHASESpatialMixer; +#if UNITY_6000_4_OR_NEWER + if (Selection.Contains(mixer.GetEntityId())) +#else if (Selection.Contains(mixer.GetInstanceID())) +#endif { Helpers.DirectivityModelSubbandParameters subbandParameters = mixer.GetListenerDirectivityModelSubbandParameters(); switch (mixer.GetListenerDirectivityType()) diff --git a/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/Runtime/PHASESource.cs b/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/Runtime/PHASESource.cs index b18a963b..0f7453ff 100644 --- a/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/Runtime/PHASESource.cs +++ b/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/Runtime/PHASESource.cs @@ -473,7 +473,12 @@ private void OnDrawGizmos() if (entry is PHASESpatialMixer) { PHASESpatialMixer mixer = entry as PHASESpatialMixer; + +#if UNITY_6000_4_OR_NEWER + if (Selection.Contains(mixer.GetEntityId())) +#else if (Selection.Contains(mixer.GetInstanceID())) +#endif { Helpers.DirectivityModelSubbandParameters subbandParameters = mixer.GetSourceDirectivityModelSubbandParameters(); switch (mixer.GetSourceDirectivityType()) diff --git a/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/Tests/Runtime/PHASETests.cs b/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/Tests/Runtime/PHASETests.cs index e5eff6c7..dfea8925 100644 --- a/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/Tests/Runtime/PHASETests.cs +++ b/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/Tests/Runtime/PHASETests.cs @@ -35,7 +35,11 @@ public IEnumerator PHASETestsCreatePlayDestroySource([ValueSource(nameof(m_testS PHASESource source = sourceObject.GetComponent(); yield return new WaitForFixedUpdate(); +#if UNITY_6000_4_OR_NEWER + Assert.IsTrue(source.GetEntityId() != EntityId.None, $"Failed to create {testSourceName}"); +#else Assert.IsTrue(source.GetInstanceID() != InvalidId, $"Failed to create {testSourceName}"); +#endif source.Play(); yield return new WaitForFixedUpdate(); @@ -59,7 +63,11 @@ public IEnumerator PHASETestSetInvalidGainOnSource() PHASESource source = sourceObject.GetComponent(); yield return new WaitForFixedUpdate(); +#if UNITY_6000_4_OR_NEWER + Assert.IsTrue(source.GetEntityId() != EntityId.None, "Failed to create looping source"); +#else Assert.IsTrue(source.GetInstanceID() != InvalidId, "Failed to create looping source"); +#endif source.Play(); yield return new WaitForSeconds(0.75f); @@ -86,7 +94,11 @@ public IEnumerator PHASETestsCreatePlaySwitchDestroySource() PHASESource source = sourceObject.GetComponent(); yield return new WaitForFixedUpdate(); +#if UNITY_6000_4_OR_NEWER + Assert.IsTrue(source.GetEntityId() != EntityId.None, "Failed to create Footsteps"); +#else Assert.IsTrue(source.GetInstanceID() != InvalidId, "Failed to create Footsteps"); +#endif source.Play(); yield return new WaitForSeconds(0.5f); @@ -116,7 +128,11 @@ public IEnumerator PHASETestsDestroyLoopingSource() PHASESource source = sourceObject.GetComponent(); yield return new WaitForFixedUpdate(); +#if UNITY_6000_4_OR_NEWER + Assert.IsTrue(source.GetEntityId() != EntityId.None, "Failed to create looping source"); +#else Assert.IsTrue(source.GetInstanceID() != InvalidId, "Failed to create looping source"); +#endif source.Play(); yield return new WaitForSeconds(0.75f); @@ -143,7 +159,11 @@ public IEnumerator PHASETestsDisableAndEnableLoopingSource() PHASESource source = sourceObject.GetComponent(); yield return new WaitForFixedUpdate(); +#if UNITY_6000_4_OR_NEWER + Assert.IsTrue(source.GetEntityId() != EntityId.None, "Failed to create looping source"); +#else Assert.IsTrue(source.GetInstanceID() != InvalidId, "Failed to create looping source"); +#endif source.Play(); yield return new WaitForSeconds(0.75f); @@ -182,7 +202,11 @@ public IEnumerator PHASETestOccluder() PHASESource source = sourceObject.GetComponent(); yield return new WaitForFixedUpdate(); +#if UNITY_6000_4_OR_NEWER + Assert.IsTrue(source.GetEntityId() != EntityId.None, "Failed to create looping source"); +#else Assert.IsTrue(source.GetInstanceID() != InvalidId, "Failed to create looping source"); +#endif source.Play(); yield return new WaitForSeconds(0.75f); @@ -213,7 +237,11 @@ public IEnumerator PHASETestOccluderWithSubmeshesAndParentScaling() PHASESource source = sourceObject.GetComponent(); yield return new WaitForFixedUpdate(); +#if UNITY_6000_4_OR_NEWER + Assert.IsTrue(source.GetEntityId() != EntityId.None, "Failed to create looping source"); +#else Assert.IsTrue(source.GetInstanceID() != InvalidId, "Failed to create looping source"); +#endif source.Play(); yield return new WaitForSeconds(0.75f); @@ -244,7 +272,11 @@ public IEnumerator PHASETestPlaySoundEventMultipleTimes() PHASESource source = sourceObject.GetComponent(); yield return new WaitForFixedUpdate(); +#if UNITY_6000_4_OR_NEWER + Assert.IsTrue(source.GetEntityId() != EntityId.None, "Failed to create looping source"); +#else Assert.IsTrue(source.GetInstanceID() != InvalidId, "Failed to create looping source"); +#endif source.Play(); yield return new WaitForSeconds(0.05f); @@ -270,7 +302,11 @@ public IEnumerator PHASETestOccluderDisableAndEnable() PHASESource source = sourceObject.GetComponent(); yield return new WaitForFixedUpdate(); +#if UNITY_6000_4_OR_NEWER + Assert.IsTrue(source.GetEntityId() != EntityId.None, "Failed to create looping source"); +#else Assert.IsTrue(source.GetInstanceID() != InvalidId, "Failed to create looping source"); +#endif source.Play(); yield return new WaitForSeconds(0.75f); @@ -310,7 +346,11 @@ public IEnumerator PHASETestDisableAndEnableListener() PHASESource source = sourceObject.GetComponent(); yield return new WaitForFixedUpdate(); +#if UNITY_6000_4_OR_NEWER + Assert.IsTrue(source.GetEntityId() != EntityId.None, "Failed to create looping source"); +#else Assert.IsTrue(source.GetInstanceID() != InvalidId, "Failed to create looping source"); +#endif source.Play(); yield return new WaitForSeconds(0.75f); @@ -341,7 +381,11 @@ public IEnumerator PHASETestChangeReverbOnListener() PHASESource source = sourceObject.GetComponent(); yield return new WaitForFixedUpdate(); +#if UNITY_6000_4_OR_NEWER + Assert.IsTrue(source.GetEntityId() != EntityId.None, "Failed to create looping source"); +#else Assert.IsTrue(source.GetInstanceID() != InvalidId, "Failed to create looping source"); +#endif source.Play(); yield return new WaitForSeconds(0.5f); @@ -370,7 +414,11 @@ public IEnumerator PHASETestSetInvalidGainOnListener() PHASESource source = sourceObject.GetComponent(); yield return new WaitForFixedUpdate(); +#if UNITY_6000_4_OR_NEWER + Assert.IsTrue(source.GetEntityId() != EntityId.None, "Failed to create looping source"); +#else Assert.IsTrue(source.GetInstanceID() != InvalidId, "Failed to create looping source"); +#endif source.Play(); yield return new WaitForSeconds(0.75f); diff --git a/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/xNode/Editor/NodeEditorUtilities.cs b/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/xNode/Editor/NodeEditorUtilities.cs index 753973be..fbfb38af 100644 --- a/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/xNode/Editor/NodeEditorUtilities.cs +++ b/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/xNode/Editor/NodeEditorUtilities.cs @@ -265,7 +265,11 @@ private static void CreateGraph() { public static void CreateFromTemplate(string initialName, string templatePath) { ProjectWindowUtil.StartNameEditingIfProjectWindowExists( +#if UNITY_6000_4_OR_NEWER + EntityId.None, +#else 0, +#endif ScriptableObject.CreateInstance(), initialName, scriptIcon, @@ -273,9 +277,15 @@ public static void CreateFromTemplate(string initialName, string templatePath) { ); } +#if UNITY_6000_4_OR_NEWER + /// Inherits from AssetCreationEndAction, must override AssetCreationEndAction.Action + public class DoCreateCodeFile : UnityEditor.ProjectWindowCallback.AssetCreationEndAction { + public override void Action(EntityId entityId, string pathName, string resourceFile) { +#else /// Inherits from EndNameAction, must override EndNameAction.Action public class DoCreateCodeFile : UnityEditor.ProjectWindowCallback.EndNameEditAction { public override void Action(int instanceId, string pathName, string resourceFile) { +#endif Object o = CreateScript(pathName, resourceFile); ProjectWindowUtil.ShowCreatedAsset(o); } diff --git a/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/xNode/Editor/NodeEditorWindow.cs b/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/xNode/Editor/NodeEditorWindow.cs index a7ec96bc..a674c578 100644 --- a/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/xNode/Editor/NodeEditorWindow.cs +++ b/plug-ins/Apple.PHASE/Apple.PHASE_Unity/Assets/xNode/Editor/NodeEditorWindow.cs @@ -186,8 +186,13 @@ public void DeselectNode(XNode.Node node) { } [OnOpenAsset(0)] +#if UNITY_6000_4_OR_NEWER + public static bool OnOpen(EntityId entityId, int line) { + XNode.NodeGraph nodeGraph = EditorUtility.EntityIdToObject(entityId) as XNode.NodeGraph; +#else public static bool OnOpen(int instanceID, int line) { XNode.NodeGraph nodeGraph = EditorUtility.InstanceIDToObject(instanceID) as XNode.NodeGraph; +#endif if (nodeGraph != null) { Open(nodeGraph); return true;