编程
Fundamentals
Setting Up Development Environment
UnigineScript
High-Level Systems
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
应用程序接口
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
Rendering-Related Classes

项目结构

与其它电脑程序一样,Unigine script编写的程序为一系列的指令,这些指令告知电脑要做的内容。我们一起快速浏览一下UnigineScript程序的基本内容。

程序指令及表达式

程序内最常见的指令类型是程序指令。UnigineScript内的程序指令是语言中的最小独立单元。之所以会写程序指令是想向编译器传达我们想要执行任务。UnigineScript内的指令以分号终结。

简单程序指令的最常见类型:

源代码 (UnigineScript)
int x;

int x是一种 声明语句。此语句告知解译器x变量。在使用变量之前,应在程序中声明这些变量。

源代码 (UnigineScript)
x = 5;

x = 5是一个 赋值语句。通过此语句将值(5)赋给变量(x)。

解译器可以解析表达式。表达式是一种评估值的数学实体。表达式可含有数值(例如2),变量 (例如x),运算符(例如+) 及函数。表达式可为单一表达式(例如 2x)或复杂表示式(例如2 + 32 + xx + y(2 + x)*(y - 3))。

源代码 (UnigineScript)
x = 2 + 3;

x = 2 + 3是一个有效赋值语句。表达式2+3 的计算结果为5。 结果值5接下来会被赋给 x

变量

变量是电脑内存中的某个地名,在此处存储着一些数据。为了与其它变量进行区分,每个变量都需要标识符 (一系列字符用来对变量,类型,类,函数等进行命名。)在UnigineScript内,声明的变量都具有一种类型 (然而事实上这种语言使用动态类型)。

下方为声明一个变量的实例。

源代码 (UnigineScript)
int x; // x - identifier, int - type
注意
默认情况下UnigineScript内的所有变量都为静态类型。

例如:

源代码 (UnigineScript)
int foo() {
	int i;
	return i++;
}

log.message("%d\n",foo());

// the output is: 0,1,2,3...

如果要实现用函数对传递的值进行修改的功能,应制定一个参考变量:

源代码 (UnigineScript)
void foo(int &v) {
	if(v) log.message("%d\n",v);
	v = 13;
}

int v = 0;
foo(v);
foo(v);

// the output is: 13

注释

UnigineScript支持单行注释和多行注释。在执行代码期间会忽略注释。

  1. 单行注释。以// 打头到每行的末尾为一个完整的注释:
    源代码 (UnigineScript)
    // single-line comment
    int x; // one more comment
  2. /**/之间的内容为多行注释:
    源代码 (UnigineScript)
    /* multi-line comment:
     * comment line
     * one more line
     */
    
    int foo() {
    	return 0;
    }

函数

在UnigineScript中,典型的指令程序会被分为称作函数的单元。函数是许多按顺序执行的指令程序。阅读更多 关于函数的信息。

是函数组,这些函数被“打包起来”以供在不同的程序中被重新使用。事实上UnigineScript的核心语言很简短 -- 然而UnigineScript自带许多,这些库为程序员提供大量额外的函数。要将库囊括在程序中,需使用预处理命令

最新更新: 2017-07-03