Converting Java to C# help

Hi guys,
am trying to convert this java script into c# does anyone know how to do it as am having issues right now

here is the code in Java

#pragma strict
//this is the currently selected Player. Also the one that will be saved to PlayerPrefs
var selectedPlayer : int = 0;

function Update()
{
if (Input.GetMouseButtonUp (0)) {
    var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
    var hit : RaycastHit;
   
    if (Physics.Raycast (ray, hit, 100))
        {
                // The pink text is where you would put the name of the object you want to click on (has attached collider).
               
                if(hit.collider.name == "Player1")
                SelectedCharacter1(); //Sends this click down to a function called "SelectedCharacter1(). Which is where all of our stuff happens.
           
                if(hit.collider.name == "Player2")
                SelectedCharacter2();
                   
                if(hit.collider.name == "Player3")
                SelectedCharacter3();
        }
        else
        {
        return;              
        }
    }
}

function SelectedCharacter1() {
    Debug.Log ("Character 1 SELECTED"); //Print out in the Unity console which character was selected.
    selectedPlayer = 1;
    PlayerPrefs.SetInt("selectedPlayer", (selectedPlayer));
}

function SelectedCharacter2() {
    Debug.Log ("Character 2 SELECTED");
    selectedPlayer = 2;
    PlayerPrefs.SetInt("selectedPlayer", (selectedPlayer));
}

function SelectedCharacter3() {
    Debug.Log ("Character 3 SELECTED");
    selectedPlayer = 3;
    PlayerPrefs.SetInt("selectedPlayer", (selectedPlayer));
}

and here is the code that i tried to do in C# I dont know how to do the Ray cast bit

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class PlayerSelect : MonoBehaviour
{

    public int selectedPlayer = 0;

   

    // Use this for initialization
    void Start ()
    {
   
    }
   
    // Update is called once per frame
    void Update ()
    {
        if(Input.GetMouseButtonUp(0))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            Ray hit = RaycastHit;

            if(Physics.Raycast(ray, hit, 100))
            {
                if(hit.collider.name == "Player1")
                {
                    Player01();
                }

                if (hit.collider.name == "Player2")
                {
                    Player02();
                }

                if (hit.collider.name == "Player3")
                {
                    Player03();
                }
            }
            else
            {
                return;
            }

        }
   
    }

    public void Player01()
    {
        Debug.Log("Player 1 Selected");
        selectedPlayer = 1;
        PlayerPrefs.SetInt("selectedPlayer", (selectedPlayer));
    }

    public void Player02()
    {
        Debug.Log("Player 2 Selected");
        selectedPlayer = 2;
        PlayerPrefs.SetInt("selectedPlayer", (selectedPlayer));
    }

    public void Player03()
    {
        Debug.Log("Player 3 Selected");
        selectedPlayer = 3;
        PlayerPrefs.SetInt("selectedPlayer", (selectedPlayer));
    }
}

You need to use the out keyword - out hit, see examples: Unity - Scripting API: Physics.Raycast

1 Like

Thank you very much :slight_smile: