Variable Export
To use variables from your C# code in UnigineScript, you need to export them. After that, they will be available on the script side.
- External variables are read-only.
See also
An example can be found in <UnigineSDK>/source/csharp/samples/Api/Scripts/Variables/ directory.
Variable Export Example
Let's say, you declared a number of variables on C# side. To export them, you will need to do the following:
- Register the variable via Unigine.Interpreter.addExternVariable() (the same as the C++ API Unigine::Interpreter::addExternVariable() function.
using System;
using Unigine;
class UnigineApp {
/*
*/
[STAThread]
static void Main(string[] args) {
Wrapper.init();
// export a variable and specify a name to access it from Unigine scripts
Interpreter.addExternVariable("my_variable_int",13);
Interpreter.addExternVariable("my_variable_float",13.17f);
Interpreter.addExternVariable("my_variable_double",13.17);
Interpreter.addExternVariable("my_variable_string","13.17s");
Interpreter.addExternVariable("my_variable_vec3",new Variable(new vec3(13.0f,17.0f,137.0f)));
Interpreter.addExternVariable("my_variable_vec4",new Variable(new vec4(13.0f,17.0f,137.0f,173.0f)));
// init engine
Engine engine = Engine.init(Engine.VERSION,args);
// enter main loop
engine.main();
// shutdown engine
Engine.shutdown();
}
}
Access from Scripts
After the registration, you can access variables from a script by their registered names:
// variables.cpp
int init() {
log.message("\n");
log.warning("int: %s\n",typeinfo(my_variable_int));
log.warning("float: %s\n",typeinfo(my_variable_float));
log.warning("double: %s\n",typeinfo(my_variable_double));
log.warning("string: %s\n",typeinfo(my_variable_string));
log.warning("variable: %s\n",typeinfo(my_variable_vec3));
log.warning("variable: %s\n",typeinfo(my_variable_vec4));
// show console
engine.console.setActivity(1);
return 1;
}
Output
The following results will be printed into the console after launching the application:
int: int: 13
float: float: 13.17
double: double: 13.17
string: string: "13.17s"
variable: vec3: 13 17 137
variable: vec4: 13 17 137 173
Last update: 2018-04-26
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)