Unity 的 CrossPlatformInput 在移动平台可以快速的实现控制,但是如果想在PC平台(导出exe)下也可以使用的话,就有点麻烦,查看源代码发现一个方法 CrossPlatformInputManager.SwitchActiveInputMethod,但是却无法事先完整功能:
CrossPlatformInputManager.SwitchActiveInputMethod(CrossPlatformInputManager.ActiveInputMethod.Touch);
上述代码虽然能够让控制器可见,并且按钮可用,但是十字键却无法使用。只能在类 CrossPlatformInputManager 修改:
#if MOBILE_INPUT activeInput = s_TouchInput; #else activeInput = s_TouchInput;// 原值为 s_HardwareInput #endif
修改 MobileControlRig:
private void CheckEnableControlRig() { #if MOBILE_INPUT EnableControlRig(true); #else EnableControlRig(true);//原脚本为:EnableControlRig(false); #endif }