国产探花免费观看_亚洲丰满少妇自慰呻吟_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)
{
// 判斷是否是預設

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邯郸市| 基隆市| 武威市| 忻州市| 西华县| 中山市| 凤冈县| 简阳市| 略阳县| 孟津县| 马公市| 汾阳市| 舟山市| 武穴市| 云浮市| 霍山县| 定南县| 松溪县| 黎城县| 宽城| 泸州市| 新丰县| 琼海市| 山东| 江都市| 调兵山市| 东平县| 黑水县| 吉隆县| 克东县| 芒康县| 馆陶县| 徐州市| 余江县| 永清县| 四川省| 西昌市| 桑日县| 米泉市| 砚山县| 比如县|