# Rotating a character with character controller when colliding a wall.

This is kind of hard to explain, but i want to code a walljump with a character controller and i want to do this in two steps. For example when i press the Jump button when near a wall, i want the character to have the Same orientation than the wall and then jump out.

Here’s what i’ve done.

``````    void OnControllerColliderHit(ControllerColliderHit hit)
{
if ((Input.GetButtonDown("Jump")) && (_controller.collisionFlags & CollisionFlags.CollidedSides) != 0 && !_grounded)
{
_hitNormal = hit.normal;                                //Normal of the hit
_wjtimer = 0.0f;                                        //Timer the character is on the wall
_preWJ = true;                                          //Boolean that is pre-walljumping
_walljump = Vector3.Reflect(_velocity, _hitNormal);     //Direction the character will jump out after being for 0.5 seconds
_wjwallvector = _hitNormal;

_staticRotation.eulerAngles = _wjwallvector;            //Rotation the character will be facing in the wall
_followcamera = false;                                  //The character will stop following the camera
}
}
``````

Basically _wjwallvector is the vector the character will be facing for 0.5 seconds before walljumping, which should be facing the wall that the character was facing when i pressed space.

_walljump is the Direction the character will be pushed out the wall after being in the wall for 0.5 seconds.

Basically my issue here is that i get both vectors WRONG, they always give odd results

For example the _wjwallvector is always facing the same direction no matter what wall i jump to.
and the _walljump vector makes me jump to a odd place too, in short none of them work properly.

TL;DR: I want to get two vectors:
_wjwallvector: Make the character face the wall i jumped to.
_walljump: Make the character jump to the opposite angle i jumped to (Basically a reflected vector).

Is there any way i could get the right values of these two rotations? i would really appreciate it since i’m stuck in this issue and i don’t find a way out

I am having a hard time following but, instead of using the walls position maybe… if our conditionals are satisfied we can consider using a vector3.addforce relative the players position and rotation.