I’m trying to limit object movement (character) so it can’t go outside camera boundary.
This is my code. Object stops moving at correct place but I can’t “return” character back into allowed bounds. bottomPoint is always different from my object transform.position when movement stops.
What I am doing wrong?
Vector3 vp = camera.WorldToViewportPoint(transform.position);
Vector3 bottomPoint = camera.ViewportToWorldPoint(new Vector3(0f, 0f, 1f));
// Does character go out of view?
if (vp.y < 0f) {
rb.velocity = Vector3.zero; // Stop movement
transform.position = new Vector3(transform.position.x, transform.position.y, bottomPoint.y);
return; // Short circuit other imput
}