从打开编辑器到运行游戏
学完本节内容你将学会如何创建工程并且运行工程.
- 打开编辑器,首先您需要选择一个工程,或者创建一个新的工程。
- 可创建几种不同的工程项目。如图,点击“新建”,进行项目创建页面。可以勾选Lua工程. Lua类型包含EmptyProject和LiveGameProject.
MagicCube V2.0里现在支持的工程类型有:
- default: 默认工程类型,用于创建一般的游戏项目。
- facetrack:可结合摄像头进行图像采集,并进行脸部表情识别、编辑和预览头饰效果的AR场景。
- mobile_ar:模拟移动端AR平面放置效果的场景,用于创建AR游戏。
- arads:专门进行AR广告编辑的场景。
点击确定后进入工程主界面.
效果工具面板: 用于创建引擎内置类型的Actor,将该面板下的Actor选项拖拽进主渲染界面可完成Actor的快速创建。
世界大纲面板: 用于列举出当前3D世界场景中的所有存在的Actor。其中分为两个标签页:
- 系统: 系统标签页中列举的为世界场景中内置的Actor,该标签页内的Actor无法增删,只可修改其属性。
- 自定义: 自定义标签页内中列举的为世界场景中由用户创建出的Actor,用户有权利对其进行增删和修改。
资产面板: 用于展示出当前项目中,所能够引用的资产列表。当用户使用编辑器进行项目创建时,编辑器会自动在该项目路径下生成 Asset文件夹 ,只有存在于该文件夹下的资源文件才能被引擎检索、使用。该文件夹外的资源,引擎不会主动检索。一般来说,请尽可能地将项目资源放入该文件夹下。
属性编辑面板: 用于对在世界大纲面板中被选中的Actor进行编辑。当用户选中了3D世界场景中的某个Actor时,该面板会显示它所对应的各种可编辑属性,显示内容会根据Actor的不同类型而变化。用户可以在该面板下对其进行编辑。
Lua脚本日志:用于显示当前编辑器运行项目所输出的Log信息,下面会介绍如何在编辑器中运行项目。
在资产中Script文件夹下找到DemoEngineApp.lua注1, 并且双击打开.
Scripts文件夹下的三个脚本文件是在创建工程时,编辑器自动生成的,生成规则为 "工程名" + "App.lua" / "Global.lua" / "Scene.lua"
XXXApp.lua 默认为该游戏工程的启动入口脚本,该文件会声明该游戏的入口函数(类似于main函数),在引擎lua脚本中,我们命名它为onStart函数。执行该脚本,会将持有入口函数的table类型变量赋值给xe.AppDelegate。以这种方式通知引擎,对该游戏实例进行管理。
XXXGlobal.lua 用于提供给用户进行一些全局变量的声明,各项目可以依据自身情况决定是否使用。
XXXScene.lua 为编辑器自动生成的场景模版文件,用户在需要创建多个游戏场景时可以参考该文件的实现。 编辑器默认生成了一个空场景。
在App.onStart方法中写入
print("HelloWorld");
注意,这里可以看到App.onStart方法作为游戏的main函数使用。在创建新项目时,编辑器自动生成了红框中的函数,以创建并使用一个空场景。
这里为在显示这个空场景之前,输出一句“hello world”。
点击工具栏中运行Lua项目启动程序, 并且在Lua脚本日志中查看日志.
至此项目就可以正常运行了, 下面我们将在屏幕上显示Hello World!
- 在资产面板空白处点击右键新建文件夹, 命名为UI(这里文件夹结构以及名字根据自己的喜好或者规范制定)
- 在新建的文件夹上点击右键创建UI文件, 新建UI文件后双击打开.
- 当前界面为UI编辑器.
- 向主视框中拖入Label控件, 并且在右侧属性面板中修改属性值. (UI制作详细介绍参考UI编辑器)
- 创建项目时新建了默认的场景, 接下来我们要将新建的UI资源添加到场景中.
- 打开场景脚本, 在onStart()方法中加载UI资源.
self.pWorld = self:GetWorld(); self.pUIActor = self.pWorld:CreateActor(XEUISceneActor.ACTOR_TYPENAME); self.pUIActor:LoadAsset(FileUtils:FilePath("Asset/UI/HelloWorld.uix")); self.pUIScene = self.pUIActor:GetScene(); self.pUIScene:Show(); self.pUIScene:SetDesignResolution(self.pUIScene:GetDesignResolution(), XUI_EXACTFIT);
- 运行LuaProject.
注1:这里创建好的名字一般是项目名称+App.lua, 因为当前创建的项目名称是DemoEngine, 所以创建的名称是DemoEngineApp.lua.