Help in conversion of variable types c#

I need help.
I converted a script:

#pragma strict

 var smooth:int;
 
 private var targetPosition:Vector3;

 function Update () {
     if(Input.GetKeyDown(KeyCode.Mouse0))
     {
         var playerPlane = new Plane(Vector3.up, transform.position);
         var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
         var hitdist = 0.0;
         
         if (playerPlane.Raycast (ray, hitdist)) {
             var targetPoint = ray.GetPoint(hitdist);
             targetPosition = ray.GetPoint(hitdist);
             var targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
             transform.rotation = targetRotation;
         }
     }
     	transform.position = Vector3.MoveTowards(transform.position, targetPosition, Time.deltaTime * smooth);
 }

to c# using some website i found.
It couldn’t convert every type of variable so i had to convert some but couldn’t all.
Can you please help me converting these?

using UnityEngine;
using System.Collections;

public class characterMovementScript : MonoBehaviour {


	int smooth;

	private Vector3 targetPosition;

	void  Update (){
		if(Input.GetMouseButton(0))
		{
			Plane playerPlane= new Plane(Vector3.up, transform.position);
			Ray ray= Camera.main.ScreenPointToRay (Input.mousePosition);
			float hitdist= 0.0f;

			if (playerPlane.Raycast (ray, hitdist)) {
				Vector3 targetPoint= ray.GetPoint(hitdist);
				targetPosition = ray.GetPoint(hitdist);
				Quaternion targetRotation= Quaternion.LookRotation(targetPoint - transform.position);
				transform.rotation = targetRotation;
			}
		}
		transform.position = Vector3.MoveTowards(transform.position, targetPosition, Time.deltaTime * smooth);
	}
}

Hi there @EitanCreate

I can only see one conversion error here and that would be that your Raycast conditional does not use the “out” keyword with the “hitdist” variable. This will likely cause Unity to give an error so simple place the word “out” next to the “hitdist” variable like so:

public class CharacterMovementScript : MonoBehaviour
{
	public int smooth;
	private Vector3 targetPosition;

	void Update ()
	{
		if(Input.GetKeyDown(KeyCode.Mouse0))
		{
			Plane playerPlane = new Plane(Vector3.up, transform.position);
			Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
			float hitdist = 0.0f;

			if (playerPlane.Raycast(ray, out hitdist)) 
			{
				Vector3 targetPoint = ray.GetPoint(hitdist);
				targetPosition = ray.GetPoint(hitdist);
				Quaternion targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
				transform.rotation = targetRotation;
			}

			transform.position = Vector3.MoveTowards(transform.position, targetPosition, Time.deltaTime * smooth);
		}
	}
}

That shouldn’t return any errors now.

I hope this helps! :slight_smile: