firstly i’m sorry for my bad english, i’'ll try to explain my problem…

i’m moving my object on a road builded with a primitive plaines, there is also some downhill parth, (like a car that run on a road)

here is my script :

```
private Transform[] planeArray;
private float speed;
private Quaternion[] _planeRInverse;
private Transform _pvotPlayer;
private void MoveForward ()
{
float moveZ = speed * Time.deltaTime;
_pvotPlayer.transform.position += _pvotPlayer.transform.forward * moveZ;
}
private void SetupPlane()
{
_planeRInverse = new Quaternion[planeArray.Length];
for (int i = 0; i < planeArray.Length; i++)
{
_planeRInverse _= Quaternion.Inverse(planeArray*.rotation);*_
```

** }**

** } **

*private void CheckPosition()*

** {**

** Vector3 playerPos = pvotPlayer.transform.position;*

_ Vector3 v1;*

** for (int i = 0; i < planeArray.Length; i++)**

** {**

*_ v1 = playerPos - planeArray*.position; _
Vector3 lv1 = _planeRInverse _ v1;
float scaleX = planeArray*.localScale.x;_
_float scaleZ = planeArray.localScale.z;
float vh = 5f * scaleX; // unity plane is of 10.0f
float vf = 5f * scaleZ;
if ( IsBetween(lv1.x,0.0f - vh,0.0f + vh) && IsBetween(lv1.z,0.0f - vf,0.0f + vf))
{_
_Vector3 dp = playerPos - planeArray.position;
dp.y = 0;
Vector3 lp = planeArray.rotation * dp;
float fixedY = lp.y + planeArray.position.y + 0.2f;*_*

** _pvotPlayer.transform.position = new Vector3( pvotPlayer.transform.position.x,fixedY,pvotPlayer.transform.position.z);**

*Vector3 newRot = new Vector3 (planeArray**.eulerAngles.x,planeArray*.eulerAngles.y,planeArray*.eulerAngles.z);*

** _pvotPlayer.transform.eulerAngles= newRot;***}*

** }**

** }**

** public bool IsBetween(double testValue, double bound1, double bound2)**

*{*

*return (testValue >= Mathf.Min(bound1,bound2) && testValue <= Mathf.Max(bound1,bound2));*

*}*

*this should fix my player y axis 0.2f upper on the current plane, but doesn’t work as i’m expected on downhill i’m getting something like this*

*[126138-immagine.jpg*|126138]

*anyone know what i’m doing wrong? thank’s you in advance*