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);
}
}
Answer by Cepheid · Apr 06, 2016 at 06:13 PM
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! :)
Thank you. Yes unity did generate that error and i was able to fix it and forgot i put this question here. Thank you anyway :)
Hi @Cepheid . the script doesn't work, i guess something in the conversion, and it should move the player wherever i click the mouse to the raycast hit. Can you please look at it and tell me what am i doing wrong here? Now what it does is looking to the direction and not going there (or moving there a little). Thanks Eitan
Are you getting any error messages? If so, could you paste them here; thanks.
Not now tx. Can you pls check the other question i have which i tagged you in? Tx. Ethan
Your answer
Follow this Question
Related Questions
Convert Java to C# 2 Answers
Jimmy vegas fps tutorial converting to c# 1 Answer
convert java to c# 1 Answer
implementing android activity? 0 Answers
typemask and type are null 1 Answer