public void rolling() { Vector3 nextPosition = player.position; nextPosition.z = transform.position.z; for (int i = 0; i < playerBounds.Length; i++) { if (SharedCameraFunctions.positionInBounds(playerBounds[i], player.position)) { Vector2 min = adjustedBounds[i].min, max = adjustedBounds[i].max; nextPosition = new Vector3( nextPosition.x <min.x ?min.x : nextPosition.x> max.x ? max.x : nextPosition.x, nextPosition.y <min.y ?min.y : nextPosition.y> max.y ? max.y : nextPosition.y, transform.position.z ); transform.position = Vector3.SmoothDamp(transform.position, nextPosition, ref currentVelocity, smoothTime); break; } } }
private void initializeBounds() { playerBounds = FindObjectOfType <CameraBound>().bounds.ToArray(); adjustedBounds = new Bounds[playerBounds.Length]; int index = 0; foreach (Bounds bounds in playerBounds) { adjustedBounds[index] = SharedCameraFunctions.adjustedBounds(bounds.min, bounds.max); index++; } }