- Home /
get test = 1 from string "test = 1" ?
so i'm making a console in my game and want to get the string that the player has typed in and execute it, for instance if the player typed in healthcontroll.PlayerHealth = 100;
then it would set healthcontroll.PlayerHealth to 100. I'm trying to do this in C#
This is kind of hard - you have to plug in an interpreter or if you are building standalone only stuff, you can use the inbuilt C# codedom compiler.
There's a javascript plugin interpreter for free on the Asset Store.
I guess that would help if you wrote your own parser for the strings in the first place
I know its not going to be easy but i really want to be able to do this , im not really to sure about the generic way to get properties. Writing my own parser?
keep in $$anonymous$$d of where you are building this to, as when the game is compiled, I do not think you can call functions from your original script anymore. Like if you are making this for IOS
Answer by whydoidoit · Feb 15, 2014 at 03:58 PM
So you either have to parse what the user types into commands that you could then use @erick_weil's methods of getting and setting properties based on what you'd worked out the user wanted to do (or more probably using Reflection).
You could also consider this https://www.assetstore.unity3d.com/#/content/2345 which is a Javascript compiler integration and it's free.
If all of these terms (codedom, interpreter, reflection) seem hard to you - then you are in for a lot of reading, this is all advanced stuff and if it's beyond your current learning level, it might be better to tackle a more straightforward thing first.
@Anxo - these methods would all work on IOS
Your answer

Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Moving all Debug information to a Custom Console 1 Answer
An OS design issue: File types associated with their appropriate programs 1 Answer
Is there a logging method, similar to C#'s Console.WriteLine? (what I want is the {N}) 3 Answers