SmoothDamp mit Positionsklemme

stimmen
2

Ich habe eine Kamera nach einem Spieler mit ‚SmoothDamp‘ aber ich wünschte, um die Kamera zu stoppen außerhalb der Grenzen des Hintergrund-Sprites gehen.

Ich kann dies tun separat mit dem ‚SmoothDamp‘, aber nicht mit ‚Mathf.Clamp‘.

transform.position = Vector3.SmoothDamp(transform.position, targetPos, ref velocity, smoothTime);

oder

bgBounds = GameObject.Find(Background).GetComponentInChildren<SpriteRenderer>();
bottomLeftLimit = bgBounds.sprite.bounds.min;
topRightLimit = bgBounds.sprite.bounds.max;

transform.position = new Vector3(Mathf.Clamp(transform.position.x, bottomLeftLimit.x, topRightLimit.x), Mathf.Clamp(transform.position.y, bottomLeftLimit.y, topRightLimit.y), transform.position.z);
Veröffentlicht am 27/11/2018 um 17:50
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
2

Um sicherzustellen , dass die Grenzen eines orthographischen Kamera nicht verlassen , eine BoundsSie brauchen , um die Ausdehnungen der Kameraansicht als Polsterung auf Ihre Klammern aufzunehmen.

Sie können verwenden camera.orthographicSizeund camera.aspectum die Ausdehnungen der Kameraansicht.

// Clamp the target position to be within the boundaries

float cameraVertExtent = camera.orthographicSize;
float cameraHorizExtent = camera.orthographicSize * camera.aspect;

Vector3 clampedTargetPos = new Vector3(
        Mathf.Clamp(targetPos.x, bottomLeftLimit.x+cameraHorizExtent, topRightLimit.x-cameraHorizExtent), 
        Mathf.Clamp(targetPos.y, bottomLeftLimit.y+cameraVertExtent, topRightLimit.y-cameraVertExtent),
        transform.position.z
        );

// SmoothDamp to the clamped target position.
transform.position = Vector3.SmoothDamp(transform.position, clampedTargetPos, ref velocity, smoothTime);

Wenn Sie nicht erhielten eine orthogonale Kamera verwenden, müßten Sie finden, wo die Ränder der nach Ansicht der Kamera mit dem Hintergrund schneiden, und von dort aus für die notwendige Polsterung lösen.

Beantwortet am 27/11/2018 um 18:07
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more