unity3d技术之导出unity场景的所有游戏对象信息

unity3d技术之导出unity场景的所有游戏对象信息

ID:35515570

大小:218.88 KB

页数:12页

时间:2019-03-25

unity3d技术之导出unity场景的所有游戏对象信息_第1页
unity3d技术之导出unity场景的所有游戏对象信息_第2页
unity3d技术之导出unity场景的所有游戏对象信息_第3页
unity3d技术之导出unity场景的所有游戏对象信息_第4页
unity3d技术之导出unity场景的所有游戏对象信息_第5页
资源描述:

《unity3d技术之导出unity场景的所有游戏对象信息》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、导出Unity场景的所有游戏对象信息,一种是XML一种是JSON。本篇文章我们把游戏场景中游戏对象的、旋转、缩放、平移与Prefab的名称导出在XML与JSON中。然后解析刚刚导出的XML或JSON通过脚本把导出的游戏场景还原。在Unity官网上下载随便下载一个demoProject,如下图所示这是我刚刚在官网上下载的一个范例程序。     接着将层次视图中的所有游戏对象都封装成Prefab保存在资源路径中,这里注意一下如果你的Prefab绑定的脚本中有publicObject的话,需要在代码中改一下。。用Find()FindTag()这类方法在脚本中Awa

2、ke()方法中来拿,不然Prefab动态加载的时候无法赋值的,如下图所示,我把封装的Prefab对象都放在了Resources/Prefab文件夹下。 OK,现在我们就需要编写我们的导出工具、在Project视图中创建Editor文件夹,接着创建脚本MyEditor。如下图所示。 因为编辑的游戏场景数量比较多,导出的时候我们需要遍历所有的游戏场景,一个一个的读取场景信息。然后取得游戏场景中所有游戏对象的Prefab的名称旋转缩放平移。有关XML的使用请大家看我的上一篇文章: Unity3D研究院之使用C#合成解析XML与JSON(四十一) 代码中我只注释重点

3、的部分,嘿嘿。 MyEditor.csC#12345678910111213141516171819202122232425262728293031usingUnityEngine;usingSystem.Collections;usingUnityEditor;usingSystem.Collections.Generic;usingSystem.Xml;usingSystem.IO;usingSystem.Text;usingLitJson;publicclassMyEditor:Editor{//将所有游戏场景导出为XML格式[MenuItem("Ga

4、meObject/ExportXML")]staticvoidExportXML(){    stringfilepath=Application.dataPath+@"/StreamingAssets/my.xml";if(!File.Exists(filepath)){File.Delete(filepath);}XmlDocumentxmlDoc=newXmlDocument();XmlElementroot=xmlDoc.CreateElement("gameObjects");//遍历所有的游戏场景foreach(UnityEditor.Edito

5、rBuildSettingsSceneSinUnityEditor.EditorBuildSettings.scenes)        {        //当关卡启用            if(S.enabled)            {            //得到关卡的名称                stringname=S.path;                //打开这个关卡32333435363738394041424344454647484950515253545556575859606162636465666768697071

6、72737475EditorApplication.OpenScene(name);XmlElementscenes=xmlDoc.CreateElement("scenes");        scenes.SetAttribute("name",name);foreach(GameObjectobjinObject.FindObjectsOfType(typeof(GameObject))){    if(obj.transform.parent==null)    {XmlElementgameObject=xmlDoc.CreateElement("

7、gameObjects");gameObject.SetAttribute("name",obj.name); gameObject.SetAttribute("asset",obj.name+".prefab");XmlElementtransform=xmlDoc.CreateElement("transform");XmlElementposition=xmlDoc.CreateElement("position");XmlElementposition_x=xmlDoc.CreateElement("x");position_x.InnerText=

8、obj.transform.position.x+"

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。