Example #1
0
 public MyoRawData(MyoState myoState)
 {
     this.Pose  = new PoseRawData(myoState.Pose);
     this.Accel = new AcceleronmeterRawData(myoState.Accel);
     this.Gyro  = new GyroscopeRawData(myoState.Gyro);
     this.Orien = new OrientationRawData(myoState.Orien);
 }
    void Start()
    {
        #region MYO_INIT
        myoState      = MyoState.NONE;
        myoController = GetComponent <MyoWebClient>();
        myoBaseObject = GameObject.Find("BaseData");
        #endregion

        #region WALKING_INIT
        walkingController = GetComponent <SensorWebClient>();
        leftFootState     = FootState.UNKNOWN;
        rightFootState    = FootState.UNKNOWN;
        targetPosFlag     = false;
        #endregion

        keyFlag = false;
    }
    void ObjectControlWithMyo()
    {
        if (myoController.recPose == Pose.Fist)
        {
            if (grabObject != null)
            {
                //moving object
                if (movingObject != null)
                {
                    movingObject.transform.localRotation = myoBaseObject.transform.rotation;
                }
                if (grabObject.GetComponent <ITrickManager>().MoveFlag)
                {
                    movingObject.transform.parent = handObject.transform;
                }
            }
            else
            {
                RaycastHit hit;
                Ray        ray = new Ray(Camera.main.transform.position, handObject.transform.forward);

                if (Physics.Raycast(ray, out hit))
                {
                    if (hit.transform.tag == "object" && Vector3.Distance(hit.transform.position, Camera.main.transform.position) < 5.0f)
                    {
                        Debug.Log(hit.transform);
                        Debug.Log(hit.transform.GetComponent <ITrickManager>());
                        hit.transform.GetComponent <ObjectSelection>().SetGlowGrab();
                        grabObject = hit.transform;
                        if (hit.transform.GetComponent <ITrickManager>().MovingObject != null)
                        {
                            movingObject = hit.transform.GetComponent <ITrickManager>().MovingObject.transform;
                        }
                        else
                        {
                            movingObject = null;
                        }
                        myoState = MyoState.GRAB;
                    }
                }
                else
                {
                }
            }
        }
        else if (myoController.recPose == Pose.WaveIn)
        {
            GetComponent <ShowPaperMsg>().nextMessage();
        }
        else if (myoController.recPose == Pose.WaveOut)
        {
            GetComponent <ShowPaperMsg>().prevMessage();
        }
        else
        {
            myoState = MyoState.NONE;
            if (grabObject != null && movingObject != null)
            {
                movingObject.transform.parent = null;
                grabObject.GetComponent <ObjectSelection>().ReleaseObject();
            }
            grabObject = null;
        }
    }