Camera and Target JS to CS converting

I'm trying to convert js code(cred. azmundai) to c# in the following; I'm newcomer, could you please point me to the right way.. Thank you.


var cameraOffset = Vector3(1,1.414214,1);
function Update ()
{
    var MyCamera = GameObject.Find("Main Camera");
    var MytargetPosition = MyCamera.transform.position;
    var ray = camera.main.ScreenPointToRay(Input.mousePosition);
    var hit : RaycastHit;
    if (Physics.Raycast (ray, hit)) 
    {
        MytargetPosition = hit.transform.position;
    }

    if(Input.GetButtonDown("Mouse0"))
    {
        camera.main.transform.position = MytargetPosition + cameraOffset;
    }

}


to


UnityEngine; using 
System.Collections;
public class hitted : MonoBehaviour
{
RaycastHit myhit = new RaycastHit();
Ray myray = new Ray();
private GameObject mycamera;
private Transform MytargetPosition;
void Update(){
mycamera=GameObject.Find("Main Camera");
    myray = Camera.main.ScreenPointToRay(Input.mousePosition);
    if (Physics.Raycast(myray, out myhit, 1000.0f) && Input.GetMouseButtonDown(0))
        print(myhit.collider.name);
    Debug.DrawLine(myray.origin, myhit.point);
    MytargetPosition.transform.position = myhit.transform.position;
    mycamera.transform.position=MytargetPosition.transform.position;
}}

2 Answers

2

I'm not sure what `MytargetPosition` variable is good for. as private var you can't assign it from outside and internally you don't assign anything to it (resulting in nullref-exception). I've optimised it a bit. You also don't need to initialise RaycastHit since it's an out parameter.

using UnityEngine;
using System.Collections;

public class hitted : MonoBehaviour
{
    private RaycastHit myhit;
    private Ray myray;
    private GameObject mycamera = null;
    public Transform MytargetPosition;
    void Update()
    {
        if (mycamera == null)
            mycamera = GameObject.Find("Main Camera");
        myray = Camera.main.ScreenPointToRay(Input.mousePosition);
        if (Physics.Raycast(myray, out myhit, 1000.0f) && Input.GetMouseButtonDown(0))
            print(myhit.collider.name);
        Debug.DrawLine(myray.origin, myhit.point);
        if (MytargetPosition != null)
            MytargetPosition.position = myhit.transform.position;
        mycamera.transform.position = myhit.transform.position;
    }
}

http://www.m2h.nl/files/js_to_c.php