Load Level

Load Level

概要

有三种可能的使用情况来加载一个关卡。

·编辑按钮使用情况:当用户点击加载按钮时,可以在编辑器中加载一个关卡。要在编辑器中加载游戏,您必须注册LE_EventInterface.OnLoad事件,该事件在关卡编辑器中单击加载按钮时触发。注册LE_EventInterface.OnLoad事件。这个事件将在关卡被加载时被调用。请记住,当脚本被销毁时,您也应该注销事件,否则可能会发生内存泄漏。

using LE_LevelEditor.Events;

// Register for the load event, which is called when the level is loaded

LE_EventInterface.OnLoad += OnLoad;

下面的事件处理程序将执行LE_LoadEvent的事件参数的回调以向编辑器提供必须加载的关卡的字节数组。

private void OnLoad(object p_sender, LE_LoadEvent p_args){

// You will probably load your level's data and meta data from a file here

byte[] dataAsByteArray = ...;

byte[] metaAsByteArray = ...;

// Execute the callbacks of the EventArgs in order to load the level into the editor p_args.LoadLevelDataFromBytesCallback(dataAsByteArray); p_args.LoadLevelMetaFromBytesCallback(metaAsByteArray);

// You could make some default operations on the level, since it is fully loaded now

// For example you could make the camera always look at the player

}

·不使用编辑按钮情况:但是,在某些情况下,您可能需要在编辑器中加载一个关卡,而无需用户交互。例如,当用户从编辑器开始一个关卡时,然后现在回到关卡编辑器场景。用户会希望看到他已经开始的关卡,因为他可能想要在游戏测试会话后后更改某些内容。在这种情况下,您必须调用LE_LevelEditorMain.GetLoadEvent方法才能获得在LE_EventInterface.OnLoad事件中相同的事件参数。要将关卡加载到关卡编辑器中,您必须调用当前实例的LE_LevelEditorMain.GetLoadEvent函数。

using LE_LevelEditor;

// You will probably load your level's data and meta data from a file here

byte[] dataAsByteArray = ...;

byte[] metaAsByteArray = ...;

// Search for an instance of the LE_LevelEditorMain.

LE_LevelEditorMain lvlEditor = FindObjectOfType();

// You can either check with 'lvlEditor.IsReady' if the level editor is initialized (currently after the first update loop)

// or simply add a callback like below.

lvlEditor.ExecuteWhenReady(()=>

{

    // Now that we know that the editor is initialized a load event can be acquired from it.

    // Execute the callbacks of the acquired event in order to load the level into the editor

    lvlEditor.GetLoadEvent().LoadLevelDataFromBytesCallback(dataAsByteArray);

    lvlEditor.GetLoadEvent().LoadLevelMetaFromBytesCallback(metaAsByteArray);

    // You could make some default operations on the level, since it is fully loaded now

    // For example you could make the camera always look at the player

});

·游戏使用情况:在前两种使用情况中,该关卡被加载用于编辑,但是您可能也想要打开关卡进行游戏。

在游戏中加载一个关卡更简单。您必须调用LE_SaveLoad.LoadLevelDataFromByteArray方法来加载关卡。如果您必须加载关卡元数据(例如获得当前关卡的金牌得分),那么您应该看看本文(链接)的第3步。

下面的代码将使用LE_SaveLoad.LoadLevelDataFromByteArray方法加载要进行游戏的关卡。它将传递由Unity编辑器监视面板提供的关卡的数据字节数组和定义在地形纹理配置中的一些值。最后,调用LE_SaveLoad.DisableLevelEditing。该函数将销毁LE_Object 脚本的所有实例,以确保该关卡不能被编辑。

地形纹理配置实例是必需的,这样才能正确加载地形。关卡文件不包含任何Asset,因此也没有地形纹理。关卡文件只存储在纹理配置中定义的纹理的id。因此,需要使用相同的纹理配置来进行关卡加载和关卡保存。

在这个例子中,只有关卡数据字节数组被加载。元数据字节数组未加载,因为在默认情况下,它仅包含元数据,例如关卡图标,关卡进行游戏并不需要它。但是,如果您添加了一些进行这个关卡的游戏需要的元数据,您还需要加载并处理它(参见这个链接的第三步)。

using LE_LevelEditor.Core;

// This serialized field should be defined in the top of this class. Its value should be

// assigned through the Unity editor's inspector.

[SerializeField]

private LE_TerrainTextureConfig TERRAIN_TEXTURE_CONFIG = null;

// You will probably load your level's data from a file here

byte[] dataAsByteArray = ...;

// Load the level from the byte array. Since there are no editor scripts in this scene the terrain

// texture configuration is not defined and needs to be passed to the LoadLevelDataFromByteArray method.

// In this example we expect TERRAIN_TEXTURE_CONFIG to be a serialized property of this class.

LE_SaveLoadData level = LE_SaveLoad.LoadLevelDataFromByteArray(

    dataAsByteArray,

    // pass '0' to put the terrain in the 'Default' layer. Something like LayerMask.NameToLayer("Terrain") is also possible

    0,

    TERRAIN_TEXTURE_CONFIG.TERRAIN_TEXTURES,

    TERRAIN_TEXTURE_CONFIG.TERRAIN_TEXTURE_SIZES,

    TERRAIN_TEXTURE_CONFIG.TERRAIN_TEXTURE_OFFSETS);

// call this function to destroy level editing scripts and improve performance

LE_SaveLoad.DisableLevelEditing(level);

// You could make some default operations on the level, since it is fully loaded now

// For example you could move the player to the start position and make the camera look at him

原文链接:http://www.freebord-game.com/index.php/multiplatform-runtime-level-editor/documentation/load

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,331评论 0 10
  • 早上,奶奶早早叫我起床,吃完早餐,带我去翠竹山拜佛,在佛主面前,我许了一个愿望,希望宝宝发现我的好,然后回到...
    冷雨叶阅读 250评论 0 0
  • 释放阅读 197评论 0 0
  • 这周感冒差不多好了,只是还一直干咳着,对于春天真是爱恨交加啊!这周报班学日语啦,和想象中一点也不一样,日语一点也不...
    db21dd77f543阅读 326评论 0 3
  • 当他让我喊他“大叔”的时候,我就知道,这场游戏,我输了。 1.兼职伊始 “妈,没事的,我的钱还够用啦。不用担心我啦...
    鳳箬阅读 158评论 0 0