国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 應用 > 應用軟件 > 正文

Unity3D 場景導出成 XML 并解析還原場景

2024-07-16 17:46:13
字體:
來源:轉載
供稿:網友

為了盡可能加快從網絡加載場景,我們通常可以把場景先導出成 XML,把優先級高的資源優先加載并顯示(地形等),把可以進入場景之后再加載的對象放到最后(比如場景里面的怪物等),本篇一部分代碼引用自:http://www.xuanyusong.com/archives/1919,導出場景部分在原作者的代碼基礎進行了優化,并且整理成了更加方便,容易使用的類庫。

先來搭建測試場景(測試場景來源網絡),并整理場景中的對象,如圖:

然后把場景中的對象都設置成預設,方便打包成 assetbundle 文件(如何打包預設請查看),如圖:

接著我們編寫把場景打包成 XML 的代碼,取名 ExportSceneToXml.cs,大家可以先看這篇文章(http://www.xuanyusong.com/archives/1919),我在此基礎上面進行了優化,全部代碼如下:


復制代碼代碼如下:
</font>using UnityEngine;
using UnityEditor;
using System.Collections;
using System.Collections.Generic;
using System.Xml;
using System.IO;
using System.Text;
public class ExportSceneToXml : Editor
{
[MenuItem("Assets/Export Scene To XML From Selection")]
static void ExportXML()
{
string path = EditorUtility.SaveFilePanel ("Save Resource", "", "New Resource", "xml");
if (path.Length != 0)
{
Object[] selectedAssetList = Selection.GetFiltered (typeof(Object), SelectionMode.DeepAssets);

//遍歷所有的游戲對象
foreach (Object selectObject in selectedAssetList)
{
// 場景名稱
string sceneName = selectObject.name;
// 場景路徑
string scenePath = AssetDatabase.GetAssetPath(selectObject);
// 場景文件
//string xmlPath = path; //Application.dataPath + "/AssetBundles/Prefab/Scenes/" + sceneName + ".xml";
// 如果存在場景文件,刪除
if(File.Exists(path)) File.Delete(path);
// 打開這個關卡
EditorApplication.OpenScene(scenePath);
XmlDocument xmlDocument = new XmlDocument();
// 創建XML屬性
XmlDeclaration xmlDeclaration = xmlDocument.CreateXmlDeclaration("1.0", "utf-8", null);
xmlDocument.AppendChild(xmlDeclaration);
// 創建XML根標志
XmlElement rootXmlElement = xmlDocument.CreateElement("root");
// 創建場景標志
XmlElement sceneXmlElement = xmlDocument.CreateElement("scene");
sceneXmlElement.SetAttribute("sceneName", sceneName);

foreach (GameObject sceneObject in Object.FindObjectsOfType(typeof(GameObject)))
{
// 如果對象是激活狀態
if (sceneObject.transform.parent == null && sceneObject.activeSelf)
{
// 判斷是否是預設

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 收藏| 增城市| 宕昌县| 清涧县| 淳安县| 鄂州市| 浦东新区| 三门峡市| 潢川县| 靖宇县| 兴义市| 太保市| 涿州市| 西盟| 泽普县| 临桂县| 广元市| 同江市| 和静县| 额敏县| 工布江达县| 红桥区| 乡城县| 静安区| 雅江县| 秦安县| 武夷山市| 英吉沙县| 绥阳县| 永嘉县| 防城港市| 玉山县| 嘉鱼县| 邵阳县| 桂阳县| 绥棱县| 金华市| 湛江市| 雷山县| 冀州市| 额敏县|