Mit Tutorial this können wir Objekte per Fingertipp auf die Oberfläche legen.Wie platziere ich Objekte, indem ich mit dem Finger über den Bildschirm wische?
Wie können wir das Skript ändern, um Objekte zu platzieren, während Sie einen Finger über den Bildschirm streichen, so dass das Platzieren von Objekten wie ein "Malbereich" wäre, wo sie platziert werden sollen? Hier
ist das Skript für aus dem Tutorial Abdrucken:
using UnityEngine;
using System.Collections;
public class KittyUIController : MonoBehaviour
{
public GameObject m_kitten;
private TangoPointCloud m_pointCloud;
void Start()
{
m_pointCloud = FindObjectOfType<TangoPointCloud>();
}
void Update()
{
if (Input.touchCount == 1)
{
// Trigger place kitten function when single touch ended.
Touch t = Input.GetTouch(0);
if (t.phase == TouchPhase.Ended)
{
PlaceKitten(t.position);
}
}
}
void PlaceKitten(Vector2 touchPosition)
{
// Find the plane.
Camera cam = Camera.main;
Vector3 planeCenter;
Plane plane;
if (!m_pointCloud.FindPlane(cam, touchPosition, out planeCenter, out plane))
{
Debug.Log("cannot find plane.");
return;
}
// Place kitten on the surface, and make it always face the camera.
if (Vector3.Angle(plane.normal, Vector3.up) < 30.0f)
{
Vector3 up = plane.normal;
Vector3 right = Vector3.Cross(plane.normal, cam.transform.forward).normalized;
Vector3 forward = Vector3.Cross(right, plane.normal).normalized;
Instantiate(m_kitten, planeCenter, Quaternion.LookRotation(forward, up));
}
else
{
Debug.Log("surface is too steep for kitten to stand on.");
}
}
}
Vielen Dank:
Ein Abstandsprüfschritt wie so könnte implementiert! Wenn Sie eine Beschreibung hinzufügen könnten, wie man die Entfernung überprüft, wo sich der Finger bewegt, würde ich das wirklich schätzen! Obwohl es in der Frage nicht enthalten war und ich auch überprüfen muss, dass ich keine Kätzchen übereinander lege, erstelle ich eine neue Frage, um dieses Problem zu lösen. – Rumata
Die Antwort wurde so bearbeitet, dass sie eine mögliche Methode zur Überprüfung der Entfernung enthält. – ryeMoss
Vielen Dank für die ausführliche Antwort! – Rumata