Why do I have to call ToString() when fetching a String from another script?


I've noticed that when I call a string from another script to set it in the current script, I have to convert it ToString even if it is already a string... Why is that?

I'd like to know, to be able to foresee future problems it could cause.

example code

private var xObject : GameObject;
private var yScript : yScript;

var nString = "01";

function Start(){
   xObject = GameObject.Find("xObject");
   yScript = GameController.GetComponent ("yScript");

function Update(){
   nString = yScript.ynString.ToString();

So in this script, why do I have to call ToString() when ynString is already a string?

Simple like to an information page, or what to look up exactly would suffice.

Thank You.

You do not, in fact, have to use ToString if the variable is already a string. I guess you're not getting a string, but an integer or something. It's impossible to say without knowing what you're doing. You should post working code, and all of it that's relevant, not just one script (which depends on another script).

FYI, don't use strings in GetComponent unless it's really necessary. Just do GetComponent(yScript), which is faster and gives you compile-time errors instead of run-time errors.

try declaring sString as a string. Im assuming the compiler thinks its a object and not a string.

var nString : String = "01";