Hey guys!
I have daringly decided to change my way of padding. It kinda works (like this):
public class Player : MonoBehaviour
{
[SerializeField] float moveSpeed = 10f;
[SerializeField] float xMin;
[SerializeField] float xMax;
[SerializeField] float yMin;
[SerializeField] float yMax;
// Start is called before the first frame update
void Start()
{
SetUpMoveBoundaries();
}
private void SetUpMoveBoundaries()
{
Camera gameCamera = Camera.main;
xMin = gameCamera.ViewportToWorldPoint(new Vector3(0, 0, 0)).x;
xMax = gameCamera.ViewportToWorldPoint(new Vector3(1, 0, 0)).x;
yMin = gameCamera.ViewportToWorldPoint(new Vector3(0, 0, 0)).y;
yMax = gameCamera.ViewportToWorldPoint(new Vector3(0, 1, 0)).y;
}
// Update is called once per frame
void Update()
{
Move();
}
private void Move()
{
var deltaX = Input.GetAxis("Horizontal") * Time.deltaTime * moveSpeed;
var deltaY = Input.GetAxis("Vertical") * Time.deltaTime * moveSpeed;
var newXPos = Mathf.Clamp(transform.position.x + deltaX, xMin, xMax);
var newYPos = Mathf.Clamp(transform.position.y + deltaY, yMin, yMax);
transform.position = new Vector2(newXPos, newYPos);
}
}
As you can see I serialized the boundary for each side to add the numbers in the editor. Which works well for me and I have found good values to work with:
But everytime I enter play mode it switches back to these values:
Which are the values the pivot creates when hitting the boundary. I can not figure out though why it is not using the values I put in manually. Anybody got an idea why?
Thanks for your help!