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 UIImpactFeedbackGenerator and UINotificationFeedbackGenerator.
  • 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.xml configuration.

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.Haptics Assembly 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 NullReferenceException errors 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.