Raycasts: Unterschied zwischen den Versionen

Aus hyperdramatik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Raycasts dienen dafür, eine unsichtbare Achse von einem bestimmten Punkt in die Welt zu schlagen. In VR sind sie nützlich, um den Blicken der Benutzerin zu folgen. In AR können sie benutzt werden um eine Achse von der Kamera des Benutzer in die reale Welt zu projizieren, reale Projekte zu berühren und auf dem Tablet interagierbar zu machen.  
Raycasts dienen dafür, eine unsichtbare Achse von einem bestimmten Punkt in die Welt zu schlagen. In VR sind sie nützlich, um den Blicken der Benutzerin zu folgen. In AR können sie benutzt werden um eine Achse von der Kamera des Benutzer in die reale Welt zu projizieren, reale Projekte zu berühren und auf dem Tablet interagierbar zu machen.  


<source lang=csharp>
<code>
using System.Collections;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Generic;

Version vom 2. April 2020, 17:47 Uhr

Raycasts dienen dafür, eine unsichtbare Achse von einem bestimmten Punkt in die Welt zu schlagen. In VR sind sie nützlich, um den Blicken der Benutzerin zu folgen. In AR können sie benutzt werden um eine Achse von der Kamera des Benutzer in die reale Welt zu projizieren, reale Projekte zu berühren und auf dem Tablet interagierbar zu machen.

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class deinscriptname: MonoBehaviour { public Camera playerCamera;

void Update() {

 { textDebug.text = "TOUCHED";
    PerformRaycast();
   }
       else
       {
           textDebug.text = "NO TOUCH";
           hitStatus = 0;
       }
       if (Input.touchCount >0 && Input.GetTouch(0).phase==TouchPhase.Began)
       {
           textDebug.text = "RAYCAST";
           PerformRaycast();
       }
   }
   void PerformRaycast()
   {
       Vector3 ray = playerCamera.ScreenToWorldPoint(Input.GetTouch(0).position);
       Ray myRay = playerCamera.ScreenPointToRay(Input.GetTouch(0).position);
       RaycastHit hit;
      
       
       touchedObjectText.text = ray.ToString();
       rayTest.transform.position = myRay.origin;
       rayTest.transform.LookAt(myRay.direction);


       {
           touchedObjectText.text = "HIT!";
           Debug.DrawRay(ray, transform.TransformDirection(Vector3.forward) * hit.distance, Color.yellow);
           hitGameObject = hit.collider.gameObject;
           touchedObjectText.text =hitGameObject.name.ToString();
           
           
           if (hitGameObject.name == "ToBeHit" && hitStatus == 0) {
               SendOSC.OscMsgStuhl(ledStatus);
               hitStatus = 1;
               if (ledStatus==0) {
                   ledStatus = 1;
               }
               else { ledStatus = 0; }
               textDebug.text = "OSC";
           }
           // Debug log this: hit.collider.gameObject.name;
           //zum material:
           //hitGameObject.GetComponent<Renderer>().material;
       }
       else
       {
           //no hit! i repeat, no hit!!
           //touchedObjectText.text = "NO HIT";
       }
   }

} </source>