AddRelativeForce forward and paralel to ground

Hello,

I’m new to unity script, and I’m facing one problem. I like to add force to my character. AddRelativeForce works fine, but when I face up direction the force create a vector up and the character go up. It’s not the goal.

If you can help me I’ll apreciate (the objective is skydive control to mobile game)

var turnSpeed : float = 10.0;
var maxTurnLean : float = 50.0;
var maxTilt : float = 50.0;

var sensitivity : float = 10.0;

var forwardForce : float = 800.0;
var guiSpeedElement : Transform;

private var normalizedSpeed : float = 0.6;
private var euler : Vector3 = Vector3.zero;

var horizontalOrientation : boolean = true;

function Awake () {
	if (horizontalOrientation)
	{
		iPhoneSettings.screenOrientation =
			iPhoneScreenOrientation.LandscapeLeft;
	}
	else
	{
		iPhoneSettings.screenOrientation =
			iPhoneScreenOrientation.Portrait;
	}

	guiSpeedElement.position = new Vector3 (0, normalizedSpeed, 0);
}

function Update () {
	for (var evt : Touch in Input.touches)
	{
		if (evt.phase == TouchPhase.Moved)
		{
		//	normalizedSpeed = evt.position.y / Screen.height;
		//	guiSpeedElement.position = new Vector3 (0, normalizedSpeed, 0);
		}
	}
}

function FixedUpdate () {
	var accelerator : Vector3 = Input.acceleration;

	if (horizontalOrientation)
	{
		var t : float = accelerator.x;
		accelerator.x = -accelerator.y;
		accelerator.y = t;
		//print(t);
	}
	
	if (t < 0) //se cabrando anda menos horizontalmente
	{
		if(t <= -0.6) { //limita a cabrada
			t = -0.6;
			rigidbody.AddRelativeForce(0, 0, (normalizedSpeed*1.5) * forwardForce);
			rigidbody.AddForce(transform.up * (t *-1.5));
			print('cabrando: ' + t);
		}
	} else {
		rigidbody.AddRelativeForce(0, 0, (normalizedSpeed*2.5) * forwardForce);
		rigidbody.AddForce(transform.up * (t * -1.5));
		print('picando: ' + t);
	}
	
	//print(normalizedSpeed * forwardForce * t);
	// Rotate turn based on acceleration		
	euler.y += accelerator.x * turnSpeed;
	
	// Since we set absolute lean position, do some extra smoothing on it
	euler.z = Mathf.Lerp(euler.z, -accelerator.x * maxTurnLean, 0.2);

	// Since we set absolute lean position, do some extra smoothing on it
	euler.x = Mathf.Lerp(euler.x, accelerator.y * maxTilt, 0.2);
	
	// Apply rotation and apply some smoothing
	var rot : Quaternion = Quaternion.Euler(euler);
	transform.rotation = Quaternion.Lerp (transform.rotation, rot, sensitivity);
	rigidbody.AddForce(transform.forward * normalizedSpeed * 1000);
}

Use only AddForce instead of AddRelativeForce: get the transform forward direction, zero y to keep only the horizontal direction, calculate the force, correct for cabrando/picando speeds, add the vertical force and apply the force to the rigidbody:

    ...
    // get the relative forward direction:
    var hDir = transform.forward; 
    hDir.y = 0; // keep only the horizontal direction
    // calculate the basic horizontal force:
    var force = hDir.normalized * forwardForce * normalizedSpeed;
    // correct for cabrando/picando
    if (t < 0){ //se cabrando anda menos horizontalmente
        if (t < -0.6) t = -0.6; // limit t
        force *= 1.5;
        print('cabrando: ' + t);
    } else {
        force *= 2.5;
        print('picando: ' + t);
    }
    // add the vertical component
    force.y = t * -1.5;
    // apply the force
    rigidbody.AddForce(force);
    ...