- Home /
Convert Float to String? or 3D Text = Float?
(note: it may be an Integer not a float, im not quite sure) so in my "RPG game" i'm setting up a very simple click to auto attack system, so far i have this set up on my monster:
var hitPoints = 100.0;
var Player: Transform;
var Self: Transform;
var TextofMonster: Transform;
function OnMouseOver () {
if (Input.GetMouseButtonDown(1)) {
Player.GetComponent(AttackSomething).AttackMonster(Self);
}
}
function ApplyDamage(DamageofWeapon) {
print(DamageofWeapon);
hitPoints -= DamageofWeapon;<br>
TextofMonster.GetComponent(TextMesh).text = "DamageofWeapon";
if (hitPoints {
DestroySelf();<br>
}<br>
}
function DestroySelf()
{
print("destroy")
}
now the DamageofWeapon is an Float sent from another script, its a random number (depending on what weapon you use). I have the TextofMonster set up as a 3d Text that is a child of the monster, and it's original text is set to a space (nothing). I want it so everytime the function is called, it shows the damage that is caused (the DamageofWeapon) but i tried just putting that in there but i get an error code. I figure this is because DamageofWeapon is an Float and not a String, so alas my question, can i turn the number from DamageofWeapon into a string, or make the 3D text display that Float?
Answer by Eric5h5 · Mar 02, 2010 at 04:02 AM
Use .ToString():
var someNumber = 10.5;
GetComponent(TextMesh).text = someNumber.ToString();
Answer by Ashkan_gc · Mar 02, 2010 at 07:21 AM
all classes in .NET/MONO has a method called ToString that returns a string representing the value of that class. you can override that class for your own classes too. let's say you have a point class then you can write
class point
{
public float x;
public float y;
override string ToString ()
{
return x.ToString () + " , " + y.ToString ();
}
you can use this function to create great strings that help in debugging your game. if you don't create a function yourself it will return the class name. to convert back string to float,double, int you can use int.Parse (yourstring) or float.Parse (yourstring)