UnigineEditor
Interface Overview
Assets Workflow
Settings and Preferences
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Landscape Tool
Using Editor Tools for Specific Tasks
FAQ
编程
Fundamentals
Setting Up Development Environment
Usage Examples
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
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
CIGI Client Plugin
Rendering-Related Classes

创建UnigineScript应用

本文介绍了如何创建一个空白项目,如何在之后使用UnigineScript语言为其添加逻辑。 使用UnigineScript编写的程序代码对于所有支持的平台都相同,这几个平台包括:Windows,Linux和OS X。

另请参阅#

  • 设置开发环境章节,其中介绍了更多有关如何搭建开发环境的内容。

创建空白UnigineScript应用#

在安装完UNIGINE SDK Browser并搭建好开发环境之后,您就可以使用UnigineScript语言来开发自己的项目了。

要创建一个空白的UnigineScript API项目,只需按如下步骤操作即可:

  1. 打开UNIGINE SDK Browser。
  2. 进入Projects(项目)标签页并点击CREATE NEW(创建新项目)

  3. 指定如下参数:

    • Project Name - 设置您项目的名称。
    • Project Path - 设置您项目的文件夹路径。
    • SDK - 选择Unigine SDK的版本。
    • API - 选择UnigineScript only(只使用UnigineScript)选项,指定在开发项目时使用UnigineScript语言。
    • Architecture - 设置您目标平台的架构。
    • Precision - 指定精度类型。 在本例中我们选用Double Precision(双精度)
    注意
    点击此跳转章节了解更多有关这些参数的内容。
  4. 点击Create New Project(创建新项目)按钮。 新建的项目就会出现在项目列表中。

您可以通过点击Run(运行)按钮来运行您的项目。

实施UnigineScript逻辑#

在这部分中我们会为空白的UnigineScript应用项目添加逻辑。

下面的例子向您展示了如何为虚拟世界添加基本Box(盒体)网格,以及如何来使其旋转。

  1. 在Unigine SDK Browser中,选择已创建的UnigineScript项目并点击Edit Content(编辑内容)按钮。

  2. 在已打开的Unigine Editor中,使用此跳转章节中给出的方法添加一个基本Box对象。 并且命名该基本对象以用作本例中。

  3. 保存该World(虚拟世界),方法是通过点击菜单栏上的File(文件) -> Save World(保存世界)或是按组合键CTRL + S,之后关闭Unigine Editor。
  4. 在Unigine SDK Browser中,选择您的UnigineScript项目并点击Open Folder(打开文件夹)按钮。

  5. 使用任意纯文本编辑器或IDE打开扩展名为.cpp的world(世界)脚本文件,它的存放路径为<YOUR PROJECT FOLDER>\data\<YOUR PROJECT NAME>\(在本例中,它是路径下文件script\data\script_project\script_project.cpp)。
  6. 为该文件添加如下代码:
    源代码 (UnigineScript)
    #include <core/unigine.h>
    
    Node box;
    
    int init() {
    
    	PlayerSpectator camera = new PlayerSpectator();
    	camera.setPosition(Vec3(2.0f,0.0f,1.5f));
    	camera.setDirection(Vec3(-1.0f,0.0f,-0.5f));
    	engine.game.setPlayer(camera);
    
    	// 通过指定名称来搜索该节点
    	int index = engine.editor.findNode("box");
    							
    	// 通过节点自身的index(索引)来获取该节点
    	if(index != -1) {
    		box = engine.editor.getNode(index);
    	}
    
    	return 1;
    }
    
    int shutdown() {
    	return 1;
    }
    
    int update() {
    	// 检查该节点是否存在
    	if(box != NULL)
    	{
    		// 获取帧时长
    		float ifps = engine.game.getIFps();
    												
    		// 设置旋转角度
    		float angle = ifps * 90.0f;
    											
    		// 获取该节点的当前变换并应用旋转
    		mat4 transform = box.getTransform() * rotateZ(angle);
    												
    		// 为该节点设置新变换
    		box.setTransform(transform);
    	}
    	return 1;
    }
    注意
    上述代码中我们加载的是名为cs_project/cs_project.cpp的world(世界)脚本文件。 如果是在您自己的项目代码中,您也应该指定所使用的world(世界)脚本文件的名称。
  7. 将所有更改保存到world(世界)脚本文件中。
  8. 在Unigine SDK Browser中,点击Run(运行)可启动该项目。

最新更新: 2017-07-03