Exemple #1
0
    void OnGUI()
    {
        GameObject tile = Selection.activeGameObject;

        if (tile == null || !tile.CompareTag("Tile"))
        {
            EditorGUILayout.HelpBox("Select a tile in the hierarchy view to enable Decentraland tile uploader.", MessageType.Warning);
            return;
        }

        GUILayout.Label("\n");
        GUILayout.Label("Configuration\n");

        nodeAddress = EditorGUILayout.TextField("Your Node RPC URL", nodeAddress);
        nodeAuth    = EditorGUILayout.TextField("Node RPC Auth Token", nodeAuth);

        GUILayout.Label("\n");
        GUILayout.Label("\n");
        GUILayout.Label("Editor\n");
        EditorGUILayout.BeginHorizontal();
        GUILayout.Label("Tile Coordinates");
        GUILayout.Label("X");
        xOffset = EditorGUILayout.IntField(xOffset);
        GUILayout.Label("Y");
        zOffset = EditorGUILayout.IntField(zOffset);

        EditorGUILayout.EndHorizontal();

        // Delete temporal assets
        if (deleteTempFiles && DirUtil.Exists("Assets/_Temp"))
        {
            DirUtil.DeleteFolder("Assets/_Temp");
        }

        if (GUILayout.Button("Publish Selected Tile "))
        {
            var    prefab   = PrefabUtil.CreatePrefabFromActiveGO(tempFolder + "Prefab/");
            var    manifest = AssetBundleEditorUtil.CreateAssetBundle(prefab, "TileBundle", tempFolder + "Bundle/", BuildTarget.WebGL);
            var    bytes    = AssetBundleEditorUtil.GetBytesFromManifest(manifest, tempFolder + "Bundle/");
            string content  = IOHelper.BytesToBase64String(bytes);

            Vector2 index = new Vector2(
                (tile.transform.position.x / TILE_SIZE) + xOffset,
                (tile.transform.position.z / TILE_SIZE) + zOffset
                );

            PublishTile(index, content);
        }

        if (publishError)
        {
            EditorGUILayout.HelpBox("Error publishing tile!", MessageType.Error);
        }
        else
        {
            EditorGUILayout.HelpBox(publishing ? ("Publishing tile at (" + xOffset + "," + zOffset + ")") : (published ? "Published!" : ""), MessageType.Info);
        }
    }