Ich entwickle derzeit eine Augmented Reality-Anwendung und muss die Größe meiner Objekte mithilfe des Pinch-Zooms ändern. Fand den Code unten im Internet, aber es funktioniert nicht. Nach dem Hinzufügen des Skripts verschwand mein Objekt und wenn ich es kneife, erscheint es einfach und dann verschwindet es wieder. Und es ist sehr klein wie nur ein Punkt auf dem Bildschirm. Was ist der mögliche Grund? Vielen Dank!So skalieren Sie Objekte in Unity3D1
public static GameObject selectedObject;
//public GameObject gameobject;
// Update is called once per frame
void Update() {
if (Input.touchCount == 0)
{
Touch touch = Input.touches[0];
Ray ray = Camera.main.ScreenPointToRay(touch.position);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 100f))
{
selectedObject = hit.collider.gameObject;
}
}
if (Input.touchCount == 2)
{
// Store both touches.
Touch touchZero = Input.GetTouch(0);
Touch touchOne = Input.GetTouch(1);
// Find the position in the previous frame of each touch.
Vector2 touchZeroPrevPos = touchZero.position - touchZero.deltaPosition;
Vector2 touchOnePrevPos = touchOne.position - touchOne.deltaPosition;
// Find the magnitude of the vector (the distance) between the touches in each frame.
float prevTouchDeltaMag = (touchZeroPrevPos - touchOnePrevPos).magnitude;
float touchDeltaMag = (touchZero.position - touchOne.position).magnitude;
// Find the difference in the distances between each frame.
float deltaMagnitudeDiff = prevTouchDeltaMag - touchDeltaMag;
selectedObject.transform.localScale = new Vector3(deltaMagnitudeDiff , deltaMagnitudeDiff , deltaMagnitudeDiff);
}
}
Haben Sie versucht, die Stärke der Prise dämpfen, indem man zB eine kleine Zahl wie 0,01f mit touchDeltaMag multipliziert? –
uhm, sorry aber wo soll ich es im Code multiplizieren? – Sarah
Nevermind - meine obigen Kommentar war falsch, ich habe ein Code-Beispiel für das, was ich glaube, das eigentliche Problem ist. –