- Home /
How can to convert it on c#?
var score = 0;
var scoreText = "Score: 0";
var mySkin : GUISkin;
function OnTriggerEnter( other : Collider ) {
Debug.Log("OnTriggerEnter() was called");
if (other.tag == "Coin") {
Debug.Log("Other object is a coin");
score += 10;
scoreText = "Score: " + score;
Debug.Log("Score is now " + score);
Destroy(other.gameObject);
}
}
function OnGUI () {
GUI.skin = mySkin;
GUI.Label (Rect (10, 10, 500, 200), scoreText.ToString()); }
I tried to convert other.tag in c# but it doesn't work
other.tag is exactly the same in C#, so it's something else you've done wrong. Post what you've tried.
Answer by nastasache · Dec 15, 2013 at 02:38 PM
Here is the full conversion to C#. Some quick conversion rules on your code:
all code from JS have to be encapsulated into a class; the file name must be accordingly with class name (ex: "Score.cs" for "class Score");
Variable declaration become "type name = value" instead of "var name : type = value";
"function" become "void" (not returning a type);
"Rect" become "new Rect";
Other things are the same.
If you have trouble with other.tag == "Coin" the reason is not related with conversion. Be sure the tag (case sensitive) "Coin" exists and your "other" object have the tag "Coin" assigned.
Note Destroy(other.gameObject) is distroying object hitting the trigger. If you have a cube with "Is trigger" activated and Score.cs attached, and a FPS controller with "Coin" tag, then, when FPS hit the cube, score will updated but the FPS will be destroyed, not the cube.
Score.cs:
using UnityEngine;
using System.Collections;
public class Score : MonoBehaviour {
int score = 0;
string scoreText = "Score: 0";
GUISkin mySkin;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
void OnTriggerEnter( Collider other) {
Debug.Log("OnTriggerEnter() was called");
if (other.tag == "Coin") {
Debug.Log("Other object is a coin");
score += 10;
scoreText = "Score: " + score;
Debug.Log("Score is now " + score);
Destroy(other.gameObject);
}
}
void OnGUI () {
GUI.skin = mySkin;
GUI.Label (new Rect (10, 10, 500, 200), scoreText.ToString());
}
}
Your answer
Follow this Question
Related Questions
CompareTag being ignored? 1 Answer
Footstep Audio Check Collider Hitting Floor 1 Answer
Please change this line to Javascript? 1 Answer
how to teleport player to another gameobject using the players tag? 0 Answers
Distribute terrain in zones 3 Answers