Convert JS to C#

I have been working on converting this Js to C# but i got a few last bugs I cant get out some one please help me.

JS version

var driveForce: float;

var hoverHeight: float;
var thrustForce: float;
var steerForce: float;
var steerPosZ: float;
var damping: float;

var thrusters: Vector3[];




function FixedUpdate () {
	var hit: RaycastHit;
	
	for (i = 0; i < thrusters.Length; i++) {
		var wdThruster: Vector3 = transform.TransformPoint(thrusters*);*
  •  if (Physics.Raycast(wdThruster, -transform.up, hit)) {*
    
  •  	var discrep: float = hoverHeight - hit.distance;*
    
  •  	var upVel: float = rigidbody.GetRelativePointVelocity(wdThruster).y;*
    

_ rigidbody.AddForceAtPosition(transform.up * (thrustForce * discrep - upVel * damping), wdThruster);_

  •  }*
    
  • }*

  • var fwd: float = Input.GetAxis(“Vertical”);*
    _ rigidbody.AddForce(transform.forward * (driveForce * fwd));_

  • var steer: float = -Input.GetAxis(“Horizontal”);*
    _ rigidbody.AddForceAtPosition(transform.right * (steerForce * steer), transform.TransformPoint(Vector3.forward * steerPosZ));_
    }

function OnDrawGizmos() {

  • for (i = 0; i < thrusters.Length; i++) {*
    _ Gizmos.DrawWireSphere(transform.TransformPoint(thrusters*), 0.1);_
    _
    }_
    _
    }*_
    C# version so far:
    using UnityEngine;
    using System.Collections;

public class HoverBoard : MonoBehaviour {

float driveForce;

float hoverHeight;
float thrustForce;
float steerForce;
float steerPosZ;
float damping;

Vector3[] thrusters;

void FixedUpdate (){
* RaycastHit hit;*

* for (i = 0; i < thrusters.Length; i++) {*
_ Vector3 wdThruster = transform.TransformPoint(thrusters*);*_

* if (Physics.Raycast(wdThruster, -transform.up, hit)) {*
* float discrep = hoverHeight - hit.distance;*
* float upVel = rigidbody.GetRelativePointVelocity(wdThruster).y;*
_ rigidbody.AddForceAtPosition(transform.up * (thrustForce * discrep - upVel * damping), wdThruster);
* }
}*_

* float fwd = Input.GetAxis(“Vertical”);*
_ rigidbody.AddForce(transform.forward * (driveForce * fwd));_

* float steer = -Input.GetAxis(“Horizontal”);*
_ rigidbody.AddForceAtPosition(transform.right * (steerForce * steer), transform.TransformPoint(Vector3.forward * steerPosZ));
}_

void OnDrawGizmos (){
* for (i = 0; i < thrusters.Length; i++) {*
_ Gizmos.DrawWireSphere(transform.TransformPoint(thrusters*), 0.1f);
}
}
}*

I am getting there errors :
error CS0103: The name i' does not exist in the current context*_</em></em> <em><em>_*error CS0165: Use of unassigned local variable hit’
error CS1502: The best overloaded method match for UnityEngine.Physics.Raycast(UnityEngine.Vector3, UnityEngine.Vector3, out UnityEngine.RaycastHit)' has some invalid arguments*_</em></em> <em><em>_*error CS1620: Argument #3’ is missing `out’ modifier_

You need to declare the variable i. For for loops, this is often done like this:

for (int i = 0; ...)

For the raycast, you need to add an out qualifier when passing hit, so the compiler knows the variable will be filled in by the function, not by you. This should fix the remaining 3 errors.

if (Physics.Raycast(wdThruster, -transform.up, out hit))  <-- add "out"