Several issues can occur with IL2CPP builds, resulting in inputs not being recognized or even exceptions being thrown like those below.


In the Player.log or device log:

2023-05-25 15:16:12.315 5024-5051/com.GameDriver.MobileTennis W/Unity: Unable to resolve function UnityEngine.Input::GetKey
2023-05-25 15:16:12.315 5024-5051/com.GameDriver.MobileTennis W/Unity: Unable to resolve function UnityEngine.Input::GetKeyDown
2023-05-25 15:16:12.315 5024-5051/com.GameDriver.MobileTennis W/Unity: Unable to resolve function UnityEngine.Input::GetKeyUp


This is commonly found with Legacy XR input handling (pre-Input System package):

Unable to resolve function UnityEngine.Input::GetButtonDown
UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:LogWarning(Object)
gdio.unity_agent.ByteUtilities:GetFunctionPointer(MethodInfo)
gdio.unity_agent.GDIOAgent:Initialize()
gdio.unity_agent.GDIOAgent:Awake()


Or something indicating "Cannot mashal type..." such as the following:

MarshalDirectiveException: Cannot marshal type 'System.Collections.Generic.List`1<UnityEngine.XR.XRNodeState>'.
  at OVRNodeStateProperties.ValidateProperty (UnityEngine.XR.XRNode nodeType, UnityEngine.XR.XRNodeState& requestedNodeState) [0x00000] in <00000000000000000000000000000000>:0 
  at OVRNodeStateProperties.GetNodeStatePropertyVector3 (UnityEngine.XR.XRNode nodeType, NodeStatePropertyType propertyType, OVRPlugin+Node ovrpNodeType, OVRPlugin+Step stepType, UnityEngine.Vector3& retVec) [0x00000] in <00000000000000000000000000000000>:0 
  at OVRInput.GetLocalControllerPosition (OVRInput+Controller controllerType) [0x00000] in <00000000000000000000000000000000>:0 
  at OVRCameraRig.UpdateAnchors (System.Boolean updateEyeAnchors, System.Boolean updateHandAnchors) [0x00000] in <00000000000000000000000000000000>:0 

To resolve many issues such as these, it is necessary to run the IL2CPP Post Processor found in the GameDriver > Experimental menu in the Unity editor, and build the project again. Be sure not to run a "Clean build" after selecting this option.


You should see something similar in the editor log if the Post Processor was successful:


Once you run the IL2CPP Post Processor and build the project again, these errors should be resolved. If you still experience any of these issues, please let us know at [email protected]