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);
                    }
                }
            }
        }