Unity’s behaviour is always the same. I posted about the rounding here;
First, transform.position doesn’t ‘convert’ into a Vector3, it is a Vector3.
I’m not 100% sure what you are asking but I’ll give it a stab. What I find often is:
Vector3 → Vector2 → Vector3
You can cast it both ways. Casting Vector3 to Vector2 will lose the z
Quaternion → Vector3 → Quaternion
You can use Quaternion.eulerAngles to get a Vector3 as it appears in the inspector’s rotation bits. The vector will hold the degrees for each axis.
You can also get a Quaternion from Vector3 with Qu…
From the post
We have Mathf.RoundToInt(float) which will just round the decimal like we kinda learned in school. If the fraction is less than 0.5 it will round down , if it’s more than 0.5 it will round up and if it is exactly 0.5 it will round to the even integer. That is; 1.5 will become 2 and 2.5 will also become 2.
Then there’s Mathf.FloorToInt(float) which will always round down (1.1 will become 1 and 1.9 will also become 1), and
Mathf.CeilToInt(float) which will always round up (1.9 will become 2 and 1.1 will also become 2).
This is always the case and will always give the same output for the same input. Perhaps share the code you used and we could analyse and see if we can get to the bottom of your issue