从打开编辑器到运行游戏

学完本节内容你将学会如何创建工程并且运行工程.


  1. 打开编辑器,首先您需要选择一个工程,或者创建一个新的工程。 alt
  2. 可创建几种不同的工程项目。如图,点击“新建”,进行项目创建页面。可以勾选Lua工程. Lua类型包含EmptyProject和LiveGameProject.
    MagicCube V2.0里现在支持的工程类型有:
    alt
    • default: 默认工程类型,用于创建一般的游戏项目。
    • facetrack:可结合摄像头进行图像采集,并进行脸部表情识别、编辑和预览头饰效果的AR场景。
    • mobile_ar:模拟移动端AR平面放置效果的场景,用于创建AR游戏。
    • arads:专门进行AR广告编辑的场景。
  1. 点击确定后进入工程主界面.
    alt

    • 效果工具面板: 用于创建引擎内置类型的Actor,将该面板下的Actor选项拖拽进主渲染界面可完成Actor的快速创建。

    • 世界大纲面板: 用于列举出当前3D世界场景中的所有存在的Actor。其中分为两个标签页:

      • 系统: 系统标签页中列举的为世界场景中内置的Actor,该标签页内的Actor无法增删,只可修改其属性。
      • 自定义: 自定义标签页内中列举的为世界场景中由用户创建出的Actor,用户有权利对其进行增删和修改。
    • 资产面板: 用于展示出当前项目中,所能够引用的资产列表。当用户使用编辑器进行项目创建时,编辑器会自动在该项目路径下生成 Asset文件夹只有存在于该文件夹下的资源文件才能被引擎检索、使用。该文件夹外的资源,引擎不会主动检索。一般来说,请尽可能地将项目资源放入该文件夹下。

    • 属性编辑面板: 用于对在世界大纲面板中被选中的Actor进行编辑。当用户选中了3D世界场景中的某个Actor时,该面板会显示它所对应的各种可编辑属性,显示内容会根据Actor的不同类型而变化。用户可以在该面板下对其进行编辑。

    • Lua脚本日志:用于显示当前编辑器运行项目所输出的Log信息,下面会介绍如何在编辑器中运行项目。

  2. 在资产中Script文件夹下找到DemoEngineApp.lua注1, 并且双击打开.
    alt

    Scripts文件夹下的三个脚本文件是在创建工程时,编辑器自动生成的,生成规则为 "工程名" + "App.lua" / "Global.lua" / "Scene.lua"

    • XXXApp.lua 默认为该游戏工程的启动入口脚本,该文件会声明该游戏的入口函数(类似于main函数),在引擎lua脚本中,我们命名它为onStart函数。执行该脚本,会将持有入口函数的table类型变量赋值给xe.AppDelegate。以这种方式通知引擎,对该游戏实例进行管理。

    • XXXGlobal.lua 用于提供给用户进行一些全局变量的声明,各项目可以依据自身情况决定是否使用。

    • XXXScene.lua 为编辑器自动生成的场景模版文件,用户在需要创建多个游戏场景时可以参考该文件的实现。 编辑器默认生成了一个空场景。

  1. 在App.onStart方法中写入print("HelloWorld"); alt

    注意,这里可以看到App.onStart方法作为游戏的main函数使用。在创建新项目时,编辑器自动生成了红框中的函数,以创建并使用一个空场景。

    alt

    这里为在显示这个空场景之前,输出一句“hello world”。

  2. 点击工具栏中运行Lua项目启动程序, 并且在Lua脚本日志中查看日志. alt alt

    至此项目就可以正常运行了, 下面我们将在屏幕上显示Hello World!

  1. 在资产面板空白处点击右键新建文件夹, 命名为UI(这里文件夹结构以及名字根据自己的喜好或者规范制定)
    alt
  2. 在新建的文件夹上点击右键创建UI文件, 新建UI文件后双击打开. alt alt
  3. 当前界面为UI编辑器. alt
  4. 向主视框中拖入Label控件, 并且在右侧属性面板中修改属性值. (UI制作详细介绍参考UI编辑器) alt
  5. 创建项目时新建了默认的场景, 接下来我们要将新建的UI资源添加到场景中. alt
  6. 打开场景脚本, 在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);
    
  7. 运行LuaProject.

注1:这里创建好的名字一般是项目名称+App.lua, 因为当前创建的项目名称是DemoEngine, 所以创建的名称是DemoEngineApp.lua.

@Copyright © cosmos 2019 all right reserved,powered by Gitbook修订时间: 2021-04-12 18:28:17

results matching ""

    No results matching ""