Engine & Standards
- Unity Version: Supports Unity 2021.3 LTS or higher. Full compatibility has been verified for Unity 6.
- iOS Requirements: Requires iPhone 7 or newer to utilize the Taptic Engine. The engine interfaces directly with
UIImpactFeedbackGeneratorandUINotificationFeedbackGenerator. - Android Standards: Utilizes a tiered API detection system to provide the highest fidelity possible for the target hardware.
- Permission Handling: Features an internal permission-triggering bridge, removing the need for manual
AndroidManifest.xmlconfiguration.
Architecture & Performance
- Static Native Bridge: Designed as a global static utility, eliminating the need for scene-based managers or persistent GameObjects.
- Zero Allocation: The core engine is engineered for zero runtime memory allocation, ensuring that frequent haptic triggers do not cause Garbage Collection (GC) spikes during gameplay.
- Assembly Isolation: Encapsulated within the
Canley.Utility.HapticsAssembly Definition. This ensures faster compilation times and prevents namespace pollution in your main project scripts. - Conditional Compilation: Uses platform-specific symbols to ensure that mobile-only native code never bloats your PC or Mac builds.
Input & Interaction
- Input Systems: Fully compatible with both the Legacy Input Manager and the Modern Input System via the Canley Core Bridge.
- TextMesh Pro: The included demo interface requires TextMesh Pro. For the smoothest installation, ensure you have imported TMP Essential Resources via the Unity Package Manager.
Platform Support: The Android Tier System
Haptics Lite features an intelligent version-detection system that scales the tactile experience based on the device’s capabilities.
- Tier 1 (API 30+): Utilizes Android Composition Primitives on flagship hardware (e.g., Google Pixel 4+, Samsung S20+) for ultra-sharp, mechanical feedback.
- Tier 2 (API 26+): Leverages the VibrationEffect API for high-fidelity native clicks and heavy impacts.
- Tier 3 (Legacy): Provides a precision millisecond-pulse fallback for older devices, ensuring a consistent (though less sharp) feel on legacy hardware.
Unity 6 Installation Notes
- TMP Resources: Upon importing into Unity 6, you may see
NullReferenceExceptionerrors regarding TextMeshPro resources. This is resolved by going to Window > TextMeshPro > Import TMP Essential Resources. - Input System Migration: If a mismatch is detected between your project settings and a scene’s EventSystem, a one-time migration assistant will appear. This check runs once per scene.
- Manual Reset: You can manually trigger the migration at: Tools > Canley Utilities > Input > Migrate to Input System.
Note: The migration menu item will be greyed out if your scene is already configured correctly for your active Input System.