コード例 #1
0
ファイル: Manager.cs プロジェクト: weathermaker/4dforvive
 public void OnGlobalGripPressUp(ViveEventData eventData)
 {
     if (isscale)
     {
         setscale();
     }
 }
コード例 #2
0
 public void OnGlobalTouchpadPressDown(ViveEventData eventData)
 {
     // pre_tran = FourDObjectcs[toggle].GetComponent<Transform>();
     toggle = (toggle + 1) % FourDObjectcs.Length;
     updateobject(toggle);
     Debug.Log("toggle is " + toggle);
 }
コード例 #3
0
ファイル: Manager.cs プロジェクト: weathermaker/4dforvive
 public void OnGlobalGripPress(ViveEventData eventData)
 {
     if (isscale)
     {
         float distance_ = Vector3.Distance(left, eventData.module.transform.position);
         Debug.Log(distance);
         Debug.Log(ball.lossyScale);
         if (distance_ / distance > 1)
         {
             if (box.localScale.x > 10)
             {
                 box.localScale = box.localScale * 1;
             }
             else
             {
                 box.localScale = boxscale * (distance_ / distance);
                 radius         = 1f * (box.lossyScale.x / 1f);
             }
         }
         else
         {
             if (box.localScale.x < 0.2)
             {
                 box.localScale = box.localScale * 1;
             }
             else
             {
                 box.localScale = boxscale * (distance_ / distance);
                 radius         = 1f * (box.lossyScale.x / 1f);
             }
         }
     }
     box.position = eventData.module.transform.position + movement;
 }
コード例 #4
0
ファイル: LeftManager.cs プロジェクト: weathermaker/4dforvive
        public void OnGlobalTriggerPress(ViveEventData eventData)
        {
            right.root.GetComponent <Renderer>().material = right.mat[0];
            Ray choose = new Ray(eventData.module.transform.position, eventData.module.transform.forward);

            if (Physics.Raycast(choose, out hit))
            {
                if (hit.transform.gameObject != tmp)
                {
                    tmp.GetComponent <Renderer>().material = right.mat[0];
                    tmp = hit.transform.gameObject;
                }
                line.enabled = true;
                line.SetPosition(0, eventData.module.transform.position);
                line.SetPosition(1, hit.point);
                hit.transform.gameObject.GetComponent <Renderer>().material = right.mat[1];

                chosen = true;
            }
            else
            {
                chosen       = false;
                line.enabled = true;
                line.SetPosition(0, eventData.module.transform.position);
                line.SetPosition(1, eventData.module.transform.position + 1000 * eventData.module.transform.forward);
            }
        }
コード例 #5
0
ファイル: Hypermesh.cs プロジェクト: weathermaker/4dforvive
 public void OnGlobalTriggerPressUp(ViveEventData eventData)
 {
     isTriggerPressed = false;
     //   A_ = eventData.module.transform.position;
     B_ = eventData.module.transform.position;
     // Debug.Log("Trigger Pressed up");
 }
コード例 #6
0
 public void OnGlobalTriggerPressUp(ViveEventData eventData)
 {
     isbutton = false;
     A_       = eventData.module.transform.position;
     B_       = eventData.module.transform.position;
     //
 }
コード例 #7
0
ファイル: LeftManager.cs プロジェクト: weathermaker/4dforvive
 public void OnGlobalApplicationMenuPressDown(ViveEventData eventData)
 {
     right.Explode();
     right.root = root;
     right.root.GetComponent <Renderer>().material     = right.mat[1];
     right.hyperface.GetComponent <Hyperface>().center = right.root.GetComponent <Hypermesh>().center;
     right.hyperface.GetComponent <Hyperface>().Renew();
 }
コード例 #8
0
 void HandlePointerExitAndEnter(ViveEventData eventData)
 {
     if (eventData.previousRaycast != eventData.currentRaycast)
     {
         ExecuteEvents.Execute <IPointerEnterHandler> (eventData.currentRaycast, eventData, ExecuteEvents.pointerEnterHandler);
         ExecuteEvents.Execute <IPointerExitHandler> (eventData.previousRaycast, eventData, ExecuteEvents.pointerExitHandler);
     }
 }
コード例 #9
0
ファイル: Manager.cs プロジェクト: weathermaker/4dforvive
 public void OnGlobalGripPressDown(ViveEventData eventData)
 {
     if (isscale)
     {
         distance = Vector3.Distance(left, eventData.module.transform.position);
         if (distance < 0.001)
         {
             distance = 1;
         }
     }
     else
     {
         movement = new Vector3();
         movement = box.position - eventData.module.transform.position;
     }
 }
コード例 #10
0
ファイル: Hypermesh.cs プロジェクト: weathermaker/4dforvive
 public void OnGlobalTriggerPressDown(ViveEventData eventData)
 {
     isTriggerPressed = true;
     //B_ = eventData.module.transform.position;
     //Vector3 relapos = new Vector3();
     //relapos = (B_ - box.position) * 8f / 3f;
     //float r = (float)Math.Sqrt(relapos.x * relapos.x + relapos.y * relapos.y + relapos.z * relapos.z);
     //if (r < radius) {
     //    B = new Vector4(relapos.x, relapos.y, relapos.z, (float)Math.Sqrt(radius * radius - relapos.x * relapos.x - relapos.y * relapos.y - relapos.z * relapos.z));
     //} else {
     //    Vector3 Q = (radius / r) * relapos;
     //    B = new Vector4(Q.x, Q.y, Q.z, 0f);
     //}
     //A = B;
     // Debug.Log("Trigger Pressed Down");
 }
コード例 #11
0
ファイル: Hyperface.cs プロジェクト: weathermaker/4dforvive
 void IGlobalTouchpadTouchHandler.OnGlobalTouchpadTouch(ViveEventData eventData)
 {
     if (Mathf.Abs(eventData.touchpadAxis.x - touch.x) > 0.3)
     {
         Vector3 a = new Vector3(touch.x, touch.y, 0);
         Vector3 b = new Vector3(eventData.touchpadAxis.x, eventData.touchpadAxis.y, 0);
         if (a.x * b.y - a.y * b.x < 0)
         {
             faceindex = (faceindex + 1) % 8;
         }
         else
         {
             faceindex = (faceindex + 7) % 8;
         }
         touch = eventData.touchpadAxis;
     }
 }
コード例 #12
0
ファイル: LeftManager.cs プロジェクト: weathermaker/4dforvive
 public void OnGlobalTriggerPressUp(ViveEventData eventData)
 {
     line.enabled = false;
     if (chosen)
     {
         hit.transform.gameObject.GetComponent <Renderer>().material = right.mat[0];
         right.root = hit.transform.gameObject;
         right.root.GetComponent <Renderer>().material = right.mat[1];
         right.Sethyperface();
         right.ball = trackball;
     }
     else
     {
         right.root.GetComponent <Renderer>().material = right.mat[1];
     }
     buttondown       = false;
     right.buttondown = false;
 }
コード例 #13
0
ファイル: Manager.cs プロジェクト: weathermaker/4dforvive
 void IGlobalTouchpadTouchHandler.OnGlobalTouchpadTouch(ViveEventData eventData)
 {
     if (Mathf.Abs(eventData.touchpadAxis.x - touch.x) > 0.3)
     {
         Vector3 a = new Vector3(touch.x, touch.y, 0);
         Vector3 b = new Vector3(eventData.touchpadAxis.x, eventData.touchpadAxis.y, 0);
         if (a.x * b.y - a.y * b.x < 0)
         {
             toggle = (toggle + 1) % 8;
         }
         else
         {
             toggle = (toggle + 7) % 8;
         }
         touch = eventData.touchpadAxis;
     }
     // Debug.Log(toggle);
 }
コード例 #14
0
        void Awake()
        {
            eventData = new ViveEventData(EventSystem.current);

            controller           = this.GetComponent <SteamVR_TrackedObject> ();
            eventData.module     = this;
            eventData.controller = this.controller;

            foreach (EVRButtonId button in buttonIds)
            {
                pressPairings.Add(button, null);
            }

            foreach (EVRButtonId button in touchIds)
            {
                touchPairings.Add(button, null);
            }
        }
コード例 #15
0
        public void OnGlobalTriggerPressDown(ViveEventData eventData)
        {
            isbutton = true;
            B_       = eventData.module.transform.position;
            Vector3 relapos = new Vector3();

            relapos = (B_ - box.position) * 8f / 3f;
            float r = (float)Math.Sqrt(relapos.x * relapos.x + relapos.y * relapos.y + relapos.z * relapos.z);

            if (r < radius)
            {
                B = new Vector4(relapos.x, relapos.y, relapos.z, (float)Math.Sqrt(radius * radius - relapos.x * relapos.x - relapos.y * relapos.y - relapos.z * relapos.z));
            }
            else
            {
                Vector3 Q = (radius / r) * relapos;
                B = new Vector4(Q.x, Q.y, Q.z, 0f);
            }
            A = B;
        }
コード例 #16
0
ファイル: Manager.cs プロジェクト: weathermaker/4dforvive
 public void OnGlobalTouchpadPressDown(ViveEventData eventData)
 {
     if (root.GetComponent <Hypermesh>().children[toggle] == null)
     {
         Create(root.GetComponent <Hypermesh>().center + neighbors[toggle]);
         root.GetComponent <Renderer>().material = mat[0];
         root = root.GetComponent <Hypermesh>().children[toggle];
         root.GetComponent <Renderer>().material     = mat[1];
         hyperface.GetComponent <Hyperface>().center = root.GetComponent <Hypermesh>().center;
         hyperface.GetComponent <Hyperface>().Renew();
     }
     else
     {
         root.GetComponent <Renderer>().material = mat[0];
         root = root.GetComponent <Hypermesh>().children[toggle];
         root.GetComponent <Renderer>().material     = mat[1];
         hyperface.GetComponent <Hyperface>().center = root.GetComponent <Hypermesh>().center;
         hyperface.GetComponent <Hyperface>().Renew();
     }
 }
コード例 #17
0
 public void OnGlobalTriggerTouchUp(ViveEventData eventData)
 {
     // throw new NotImplementedException();
 }
コード例 #18
0
ファイル: LeftManager.cs プロジェクト: weathermaker/4dforvive
 public void OnGlobalApplicationMenuPress(ViveEventData eventData)
 {
     //  throw new NotImplementedException();
 }
コード例 #19
0
 public void OnGlobalTriggerPress(ViveEventData eventData)
 {
     isbutton = true;
     B_       = eventData.module.transform.position;
 }
コード例 #20
0
ファイル: LeftManager.cs プロジェクト: weathermaker/4dforvive
 public void OnGlobalApplicationMenuPressUp(ViveEventData eventData)
 {
     buttondown       = false;
     right.buttondown = false;
 }
コード例 #21
0
ファイル: Hypermesh.cs プロジェクト: weathermaker/4dforvive
 public void OnGlobalTriggerPress(ViveEventData eventData)
 {
     isTriggerPressed = true;
     B_ = eventData.module.transform.position;
     // Debug.Log("Trigger Pressed ");
 }
コード例 #22
0
ファイル: LeftManager.cs プロジェクト: weathermaker/4dforvive
 public void OnGlobalGripPressUp(ViveEventData eventData)
 {
     right.setissalce(false);
     buttondown       = false;
     right.buttondown = false;
 }
コード例 #23
0
 public void OnGlobalGripPressUp(ViveEventData eventData)
 {
 }
コード例 #24
0
ファイル: Manager.cs プロジェクト: weathermaker/4dforvive
 void IGlobalTouchpadTouchDownHandler.OnGlobalTouchpadTouchDown(ViveEventData eventData)
 {
     touch = eventData.touchpadAxis;
 }
コード例 #25
0
ファイル: Manager.cs プロジェクト: weathermaker/4dforvive
 public void OnGlobalTriggerPressUp(ViveEventData eventData)
 {
     A_ = eventData.module.transform.position;
     B_ = eventData.module.transform.position;
     isTriggerPressed = false;
 }
コード例 #26
0
 public void OnGlobalGripPressUp(ViveEventData eventData)
 {
     throw new NotImplementedException();
 }
コード例 #27
0
 public void OnGlobalGripPress(ViveEventData eventData)
 {
     box.position = eventData.module.transform.position + movement;
 }
コード例 #28
0
        //public void OnGlobalBPress(ViveEventData eventData) {
        //    isbutton = true;
        //    B_ = eventData.module.transform.position;
        //    Debug.Log(eventData.module.transform.position);
        //}

        //public void OnGlobalBPressDown(WiiMoteEventData eventData) {
        //    isbutton = true;
        //    B_ = eventData.module.transform.position;
        //    Vector3 relapos = new Vector3();
        //    relapos = (B_ - box.position) * 8f / 3f;
        //    float r = (float)Math.Sqrt(relapos.x * relapos.x + relapos.y * relapos.y + relapos.z * relapos.z);
        //    if (r < radius) {
        //        B = new Vector4(relapos.x, relapos.y, relapos.z, (float)Math.Sqrt(radius * radius - relapos.x * relapos.x - relapos.y * relapos.y - relapos.z * relapos.z));
        //    } else {
        //        //float length = relapos.magnitude;
        //        Vector3 Q = (radius / r) * relapos;
        //        //relapos = Q + box.position;
        //        B = new Vector4(Q.x, Q.y, Q.z, 0f);
        //    }
        //    A = B;
        //    Debug.Log(eventData.module.transform.position);

        //}
        //public void OnGlobalBPressUp(WiiMoteEventData eventData) {
        //    isbutton = false;
        //    A_ = eventData.module.transform.position;
        //    B_ = eventData.module.transform.position;
        //    Debug.Log(eventData.module.transform.position);
        //}
        //public void OnGlobalAPressDown(WiiMoteEventData eventData) {
        //    movement = new Vector3();
        //    movement = box.position - eventData.module.transform.position;
        //}

        //public void OnGlobalAPress(WiiMoteEventData eventData) {
        //    box.position = eventData.module.transform.position + movement;
        //}
        //public void OnGlobalAPressUp(WiiMoteEventData eventData) {
        //}


        public void OnGlobalGripPressDown(ViveEventData eventData)
        {
            movement = new Vector3();
            movement = box.position - eventData.module.transform.position;
        }
コード例 #29
0
ファイル: Manager.cs プロジェクト: weathermaker/4dforvive
 void IGlobalApplicationMenuPressDownHandler.OnGlobalApplicationMenuPressDown(ViveEventData eventData)
 {
     Explode();
     Application.LoadLevel(0);
 }
コード例 #30
0
ファイル: Manager.cs プロジェクト: weathermaker/4dforvive
 void IGlobalTouchpadTouchUpHandler.OnGlobalTouchpadTouchUp(ViveEventData eventData)
 {
     //throw new NotImplementedException();
 }