En utilisant this tutoriel, nous pouvons placer des objets sur la surface par le robinet du doigt.Comment placer des objets en faisant glisser votre doigt sur l'écran?
Comment pouvons-nous changer le script pour placer des objets tout en glissant un doigt sur l'écran, de sorte que placer des objets serait comme «peindre» la zone où ils devraient être placés?
Voici le script pour placer du tutoriel:
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.");
}
}
}
Merci beaucoup! Si vous pouviez ajouter une description sur la façon de vérifier la distance où le doigt bougeait, j'apprécierais vraiment ça! Bien que cela ne soit pas inclus dans la question, et aussi je dois vérifier que je ne mets pas les chatons les uns sur les autres, alors je crée une nouvelle question pour résoudre ce problème. – Rumata
La réponse a été modifiée pour inclure une méthode possible de vérification de la distance. – ryeMoss
Merci beaucoup pour cette réponse si détaillée! – Rumata