public static void LoadWorldData(Data.WorldData.cWorldData data)
    {
        byte[] dataAsByteArray;
        byte[] metaAsByteArray;
        dataAsByteArray = data.ByteData;
        metaAsByteArray = data.ByteMetadata;

        if (dataAsByteArray.Length > 0 && metaAsByteArray.Length > 0)
        {
            // Search for an instance of the LE_LevelEditorMain.
            LE_LevelEditorMain lvlEditor = UnityEngine.Object.FindObjectOfType <LE_LevelEditorMain>();

            // 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
            });
        }
    }
    public static void OnSaveWorldData(object sender, LE_SaveEvent e)
    {
        byte[] levelDataAsByteArray = e.SavedLevelData;
        byte[] levelMetaAsByteArray = e.SavedLevelMeta;

        Data.WorldData.cWorldData WorldData = new Data.WorldData.cWorldData();
        WorldData.ByteMetadata = levelMetaAsByteArray;
        WorldData.ByteData     = levelDataAsByteArray;
        Globals.con.SendObject("SaveWorldData", WorldData);
    }
Exemplo n.º 3
0
 private void HandleLoadWorldData(PacketHeader packetHeader, Connection connection, Data.WorldData.cWorldData incomingObject)
 {
     Globals.wd            = incomingObject;
     Globals.loadWorldData = true;
 }