Ich habe ein Sprite in einem 2D -Handyspiel in Einheit und versuche, diesen Sprite mit meinem Finger zu berühren und zu ziehen, damit sich das Sprite genau dort bewegen sollte, wo der Finger auf dem Bildschirm berührt wird. Das Problem ist jedoch, dass das Sprite immer hinter dem Finger auf dem Bildschirm zurückbleibt. Wenn ich den Finger mit sehr schnellen Geschwindigkeiten bewege, wird das Sprite verzögert. Das Sprite muss in seiner Bewegung sehr unmittelbar sein und an dem Punkt auf dem Bildschirm anwesend sein, wo der Finger berührt wird (das Sprite wird von der Fingerberührung zu jeder Zeit gezogen), es ist für das Spiel sehr wichtig. < BR /> Ich habe den folgenden Code ausprobiert: < /p>
void Update()
{
if (Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
Vector3 touchPosition = Camera.main.ScreenToWorldPoint(touch.position);
touchPosition.z = 0f;
if (touch.phase == TouchPhase.Began)
{
touchOffset = transform.position - touchPosition;
}
transform.position = touchPosition + touchOffset;
}
}
< /code>
In diesem Fall hat das Sprite eine Verzögerung bei sehr schnellen Geschwindigkeiten von Finger -Touch und Drag. Die Geschwindigkeit ist für das Spiel sehr wichtig und der Sprite sollte immer vorhanden sein, wo der Finger auf dem Bildschirm berührt wird.
Ich habe ein Sprite in einem 2D -Handyspiel in Einheit und versuche, diesen Sprite mit meinem Finger zu berühren und zu ziehen, damit sich das Sprite genau dort bewegen sollte, wo der Finger auf dem Bildschirm berührt wird. Das Problem ist jedoch, dass das Sprite immer hinter dem Finger auf dem Bildschirm zurückbleibt. Wenn ich den Finger mit sehr schnellen Geschwindigkeiten bewege, wird das Sprite verzögert. Das Sprite muss in seiner Bewegung sehr unmittelbar sein und an dem Punkt auf dem Bildschirm anwesend sein, wo der Finger berührt wird (das Sprite wird von der Fingerberührung zu jeder Zeit gezogen), es ist für das Spiel sehr wichtig. < BR /> Ich habe den folgenden Code ausprobiert: < /p> void Update() { if (Input.touchCount > 0) { Touch touch = Input.GetTouch(0); Vector3 touchPosition = Camera.main.ScreenToWorldPoint(touch.position); touchPosition.z = 0f; if (touch.phase == TouchPhase.Began) { touchOffset = transform.position - touchPosition; } transform.position = touchPosition + touchOffset; } } < /code> In diesem Fall hat das Sprite eine Verzögerung bei sehr schnellen Geschwindigkeiten von Finger -Touch und Drag. Die Geschwindigkeit ist für das Spiel sehr wichtig und der Sprite sollte immer vorhanden sein, wo der Finger auf dem Bildschirm berührt wird.
ein das Recht. Ich möchte jedoch offensichtlich die Animation nach links drehen, wenn er nach links geht (2D-Seiten-Scroller). .x , das nur das Sprite umdreht. Nicht der Animationsclip. (Dies...
Ich verwende InputTransformation In JetPack komponieren Sie die Benutzereingabe in einem BasicTextField . Die Transformation funktioniert korrekt, aber der Cursor bleibt in derselben Position,...
Ich arbeite an einer GUI, bei der das Drücken einer bestimmten Taste ein Popup-Fenster erzeugt, in dem eine lange, scrollbare Liste von Text angezeigt werden soll. Ich verwende das Text-Widget im...
Ich entwickle mobile Steuerelemente für mein Spiel, aber ich habe ein Problem bei der Implementierung der Kamera -Rotation mit einem Sensor gestoßen. Dies liegt höchstwahrscheinlich daran, dass das...
Ich implementieren eine RecyclerView mit mehreren Ansichtstypen und benötigte für bestimmte Elemente einen Sticky-Header. Um dies zu erreichen, habe ich eine ItemDecoration verwendet, um den...