void OnGUI()
    {
        int sWidth = Screen.width;
        GUI.Label(new Rect(sWidth - 100,0,50,50),"Time:" + m_fBallTimer);
        if( GUI.Button(new Rect(sWidth - 200,0,100,100),"Init") ){
            Application.LoadLevel(Application.loadedLevel);
        }
        if( GUI.Button(new Rect(sWidth - 200,100,100,100),"SWMode") ){
            m_tGameMode.Next();
        }
        if( GUI.Button(new Rect(sWidth - 200,200,100,100),"SChg") ){
            m_Ball.SendMessage( "NextStuff" );
        }
        if( GUI.Button(new Rect(sWidth - 200,400,100,100),"Ret") ){
            m_Ball.SendMessage( "Return" );
        }

        if( GUI.Button(new Rect(sWidth - 100,0,100,100),"RotX+") ){
            ParamGyro gyParam = new ParamGyro();
            gyParam.m_vRotRate = new Vector3(1.0f,0.0f,0.0f);
            m_Gyro.SendMessage( "GyroTest", gyParam );
        }
        if( GUI.Button(new Rect(sWidth - 100,100,100,100),"RotX-") ){
            ParamGyro gyParam = new ParamGyro();
            gyParam.m_vRotRate = new Vector3(-1.0f,0.0f,0.0f);
            m_Gyro.SendMessage( "GyroTest", gyParam );
        }
        if( GUI.Button(new Rect(sWidth - 100,200,100,100),"RotY+") ){
            ParamGyro gyParam = new ParamGyro();
            gyParam.m_vRotRate = new Vector3(0.0f,1.0f,0.0f);
            m_Gyro.SendMessage( "GyroTest", gyParam );
        }
        if( GUI.Button(new Rect(sWidth - 100,300,100,100),"RotY-") ){
            ParamGyro gyParam = new ParamGyro();
            gyParam.m_vRotRate = new Vector3(0.0f,-1.0f,0.0f);
            m_Gyro.SendMessage( "GyroTest", gyParam );
        }
        if( GUI.Button(new Rect(sWidth - 100,400,100,100),"RotZ+") ){
            ParamGyro gyParam = new ParamGyro();
            gyParam.m_vRotRate = new Vector3(0.0f,0.0f,1.0f);
            m_Gyro.SendMessage( "GyroTest", gyParam );
        }
        if( GUI.Button(new Rect(sWidth - 100,500,100,100),"RotZ-") ){
            ParamGyro gyParam = new ParamGyro();
            gyParam.m_vRotRate = new Vector3(0.0f,0.0f,-1.0f);
            m_Gyro.SendMessage( "GyroTest", gyParam );
        }
    }
 void Start()
 {
     Input.gyro.enabled = true;
     m_GyParams = new ParamGyro();
     m_bTest = false;
 }
 // Test
 public virtual void GyroTest( ParamGyro _params )
 {
     m_GyParams = _params;
     m_bTest = true;
 }
    /*
    public void GyroGravity( Vector3 _vGrav )
    {
        m_vGyGrav = _vGrav;
    }

    public void GyroAcceleration( Vector3 _vAcc )
    {
        if( 0.2f > _vAcc.magnitude ) {
            _vAcc = Vector3.zero;
        }
        m_vGyAccPre = m_vGyAccNow;
        m_vGyAccNow = _vAcc;
    }
    */
    public void Gyro( ParamGyro _params )
    {
        m_GyParams = _params;
    }
    // Use this for initialization
    void Start()
    {
        m_GyParams = new ParamGyro();

        m_vGyGrav = new Vector3(0.0f, 0.0f, 0.0f);
        m_vGyAccNow = new Vector3(0.0f, 0.0f, 0.0f);
        m_vGyAccPre = new Vector3(0.0f, 0.0f, 0.0f);
        m_vAccNow = new Vector3(0.0f, 0.0f, 0.0f);
        m_vAccPre = new Vector3(0.0f, 0.0f, 0.0f);

        m_vWldGrav = new Vector3(0.0f, -9.8f, 0.0f);
        m_vWldIForce = new Vector3(0.0f, 0.0f, 0.0f);
        m_vWldVelo = new Vector3(0.0f, 0.0f, 0.0f);

        m_vWldIForceMax = new Vector3(0.0f, 0.0f, 0.0f);
        m_vWldVeloMax = new Vector3(0.0f, 0.0f, 0.0f);

        m_iMeanIdx = 0;
        m_iMeanNum = 10;
        m_vWldVeloTmp = new Vector3[m_iMeanNum];

        Init();
    }