public override bool Initialize() { currentRotationAngle = 0; recordRotationAngle = 0; rockerState = RockerState.RockerMoveMiddle; startPressState = PressState.Ready; refreshPressState = PressState.Ready; longPressTime = 2.0f; #if UNITY_EDITOR PCControl = true; #else //启动串口 McuInput.GetInstance(); PCControl = false; #endif return(true); }
//摇杆检查 private void MachineInputCheck() { if (PCControl) { if (UnityEngine.Input.GetKey(KeyCode.Q)) { if (rockerState != RockerState.RockerMoveForwardLeft) { rockerState = RockerState.RockerMoveForwardLeft; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } else if (UnityEngine.Input.GetKey(KeyCode.E)) { if (rockerState != RockerState.RockerMoveForwardRight) { rockerState = RockerState.RockerMoveForwardRight; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } else if (UnityEngine.Input.GetKey(KeyCode.W)) { if (rockerState != RockerState.RockerMoveForward) { rockerState = RockerState.RockerMoveForward; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } else if (UnityEngine.Input.GetKey(KeyCode.Z)) { if (rockerState != RockerState.RockerMoveBackLeft) { rockerState = RockerState.RockerMoveBackLeft; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } else if (UnityEngine.Input.GetKey(KeyCode.C)) { if (rockerState != RockerState.RockerMoveBackRight) { rockerState = RockerState.RockerMoveBackRight; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } else if (UnityEngine.Input.GetKey(KeyCode.S)) { if (rockerState != RockerState.RockerMoveBack) { rockerState = RockerState.RockerMoveBack; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } else if (UnityEngine.Input.GetKey(KeyCode.A)) { if (rockerState != RockerState.RockerMoveLeft) { rockerState = RockerState.RockerMoveLeft; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } else if (UnityEngine.Input.GetKey(KeyCode.D)) { if (rockerState != RockerState.RockerMoveRight) { rockerState = RockerState.RockerMoveRight; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } else if (!UnityEngine.Input.GetKey(KeyCode.Q) && !UnityEngine.Input.GetKey(KeyCode.W) && !UnityEngine.Input.GetKey(KeyCode.E) && !UnityEngine.Input.GetKey(KeyCode.A) && !UnityEngine.Input.GetKey(KeyCode.D) && !UnityEngine.Input.GetKey(KeyCode.Z) && !UnityEngine.Input.GetKey(KeyCode.X) && !UnityEngine.Input.GetKey(KeyCode.C)) { if (rockerState != RockerState.RockerMoveMiddle) { rockerState = RockerState.RockerMoveMiddle; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } //旋转 if (UnityEngine.Input.GetKey(KeyCode.LeftArrow)) { currentRotationAngle = 5f; } else if (UnityEngine.Input.GetKey(KeyCode.RightArrow)) { currentRotationAngle = -5f; } else { currentRotationAngle = 0f; } if (recordRotationAngle != currentRotationAngle) { recordRotationAngle = currentRotationAngle; if (RotateHandler != null) { RotateHandler(recordRotationAngle); } } } else { if (McuInput.GetInstance().GetKey(MCUKeyCode.LeftUp)) { if (rockerState != RockerState.RockerMoveForwardLeft) { rockerState = RockerState.RockerMoveForwardLeft; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } else if (McuInput.GetInstance().GetKey(MCUKeyCode.RightUp)) { if (rockerState != RockerState.RockerMoveForwardRight) { rockerState = RockerState.RockerMoveForwardRight; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } else if (McuInput.GetInstance().GetKey(MCUKeyCode.Up)) { if (rockerState != RockerState.RockerMoveForward) { rockerState = RockerState.RockerMoveForward; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } else if (McuInput.GetInstance().GetKey(MCUKeyCode.LeftDown)) { if (rockerState != RockerState.RockerMoveBackLeft) { rockerState = RockerState.RockerMoveBackLeft; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } else if (McuInput.GetInstance().GetKey(MCUKeyCode.RightDown)) { if (rockerState != RockerState.RockerMoveBackRight) { rockerState = RockerState.RockerMoveBackRight; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } else if (McuInput.GetInstance().GetKey(MCUKeyCode.Down)) { if (rockerState != RockerState.RockerMoveBack) { rockerState = RockerState.RockerMoveBack; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } else if (McuInput.GetInstance().GetKey(MCUKeyCode.Left)) { if (rockerState != RockerState.RockerMoveLeft) { rockerState = RockerState.RockerMoveLeft; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } else if (McuInput.GetInstance().GetKey(MCUKeyCode.Right)) { if (rockerState != RockerState.RockerMoveRight) { rockerState = RockerState.RockerMoveRight; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } else if (!McuInput.GetInstance().GetKey(MCUKeyCode.Up) && !McuInput.GetInstance().GetKey(MCUKeyCode.Down) && !McuInput.GetInstance().GetKey(MCUKeyCode.Left) && !McuInput.GetInstance().GetKey(MCUKeyCode.Right) && !McuInput.GetInstance().GetKey(MCUKeyCode.LeftUp) && !McuInput.GetInstance().GetKey(MCUKeyCode.RightUp) && !McuInput.GetInstance().GetKey(MCUKeyCode.LeftDown) && !McuInput.GetInstance().GetKey(MCUKeyCode.RightDown)) { if (rockerState != RockerState.RockerMoveMiddle) { rockerState = RockerState.RockerMoveMiddle; if (RockerHandler != null) { RockerHandler((int)rockerState); } } } onceRotationAngle = -McuInput.GetInstance().GetRotation(); currentRotationAngle += onceRotationAngle; // if (recordRotationAngle != 0 && onceRotationAngle == 0) { recordRotationAngle = onceRotationAngle; if (RotateHandler != null) { RotateHandler(recordRotationAngle); } return; } if (currentRotationAngle > 7.2f || currentRotationAngle < -7.2f) { recordRotationAngle = currentRotationAngle; currentRotationAngle = 0; if (RotateHandler != null) { RotateHandler(recordRotationAngle); } } } }