Hello guys can you explain this script to me please :
if(headBobEnabled) {
var percentage = Mathf.Min(1, Mathf.Abs(Input.GetAxis("Vertical")) + Mathf.Abs(Input.GetAxis("Horizontal")));
var desiredPosX = initialLocalPos.x + headBobDistance.x * Mathf.Sin(Time.time * headBobSpeed + Mathf.PI/2);
//Blend between stationary and desired x position
t.localPosition.x = (initialLocalPos.x * (1 - percentage)) + (desiredPosX * (percentage));
}
i want to know what the Mathf.PI/ 2 is doing and what
var percentage = Mathf.Min(1, Mathf.Abs(Input.GetAxis(“Vertical”)) + Mathf.Abs(Input.GetAxis(“Horizontal”)));
what is 1 needed for right before the mathf.min? please explain this in a simple way if possible thank you
Okay. Starting with your first question, Mathf.Pi/2 is a value in radians for 90-degrees. This is important in this case since the mathematicial function Sin repeats every 2Pi. This is important because without the offset, sin would return 0 at time 0. With this setup, it will return 1 at time zero.
The answer to your second question is caused by the nature of the math you are doing. It simply gets a speed that is between 0 and 1, and if the speed is greater than 1 (i.e. if you have a 60% vertical and a 50% horizontal deflection), it reduces the total sum to one. Clamping the value to between 0 and 1 would be more clear.
Thank you that actually make sense :) thank you very much
Is used to cut the percentage to the maximum of 1. I.e. if “Vertical+Horizontal” is more than 1 then “Min” will return “1”.
Mathf.PI/ 2
Is used to shift the “Sin” value. Half of PI is equal to 90 degrees. In general “Sin” here is used as some coefficient to position. To shift desired position smooth.
Thank you that actually make sense :) thank you very much
– MC_HALO