- Home /
Is there a way to get the symbolic String name [editing name] of a variable at runtime?
Hi UnityAnswers Community,
I was wondering if there was a way in C# to get the symbolic name of a variable at runtime.
I am saving to disk several properties of a Scene in the form of "STRING=value" lines. STRING is also the internal name of the variable I'm using in MonoDevelop.
Is there an easy way to obtain something like VARIABLE.GetLiteralName() to speed up the saving process, or should I simply manually type the string equivalent of each variable?
I know I could map each string in a hashmap/array, but I'd like to know if what I asked is possible.
For example:
float _a;
string _b = _a.SomeFunctionThatGetsThisVariableSymbolicName();
at the end, _b should contain "_a";
Thanks for your time :)
Answer by Loius · Mar 20, 2014 at 12:39 AM
I looked this up myself a while back, and as far as I was able to tell, there's no way to go from a variable to its name.
But! you can use reflection to get a list of names which you can then translate into variables. You can probably automate the creation of your hashtable or whatever using some fancy tricks.
using System.Reflection;
...
public void GetEverythang() {
FieldInfo[] allFields = this.GetType().GetFields();
// play to your heart's content
}
Thanks, I should really delve more into using Reflection.
I ended up using enums, since they allow an easy internal name to string conversion.
Your answer
Follow this Question
Related Questions
Converting String to Variable Name 3 Answers
Get Variable From String 1 Answer
transform.name value to a variable 2 Answers
Help with GetType().GetField().GetValue() 1 Answer
Public variable hidden in the inspector 2 Answers