Unity3D技术之导出游戏场景详解

Unity3D技术之导出游戏场景详解

ID:39891023

大小:78.50 KB

页数:10页

时间:2019-07-14

Unity3D技术之导出游戏场景详解_第1页
Unity3D技术之导出游戏场景详解_第2页
Unity3D技术之导出游戏场景详解_第3页
Unity3D技术之导出游戏场景详解_第4页
Unity3D技术之导出游戏场景详解_第5页
资源描述:

《Unity3D技术之导出游戏场景详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Unity3D技术之导出游戏场景详解欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。此时我们就可以导出游戏场景的信息拉,注意游戏场景的需要现在ProjectSetting中注册。点击GameObject–>Export  XML和GameObject–>ExportJson菜单项即可开始生成。(文章出自狗刨学习网) 如下图所示,场景导出完毕后,会将xml与Json文件保存在StreamingAssets

2、路径下,放在这里的原因是方便移动平台移植,因为它们属于二进制文件,移动平台在读取二进制文件的路径是不一样的。一定要放在这里喔。 接着,我继续创建两个游戏场景,一个用来解析XML的场景,一个用来解析JSON的场景。 XML场景中,创建一个空的游戏对象,把XML.cs挂上去。C#123456789usingUnityEngine;usingSystem.Collections;usingSystem.Xml;usingSystem.IO;publicclassXML:MonoBehaviour{ //UsethisforinitializationvoidS

3、tart(){1011121314151617181920212223242526272829303132 //电脑和iphong上的路径是不一样的,这里用标签判断一下。#ifUNITY_EDITORstringfilepath=Application.dataPath+"/StreamingAssets"+"/my.xml";#elifUNITY_IPHONE  stringfilepath=Application.dataPath+"/Raw"+"/my.xml";#endif        //如果文件存在话开始解析。if(File.Exists(

4、filepath)){XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load(filepath);XmlNodeListnodeList=xmlDoc.SelectSingleNode("gameObjects").ChildNodes;foreach(XmlElementscene  innodeList){//因为我的XML是把所有游戏对象全部导出,所以这里判断一下只解析需要的场景中的游戏对象//JSON和它的原理类似if(!scene.GetAttribute("name").Equals("Assets/St

5、arTrooper.unity")){continue;}3334353637383940414243444546474849505152535455 foreach(XmlElementgameObjectsinscene.ChildNodes){ stringasset="Prefab/"+gameObjects.GetAttribute("name");Vector3pos=Vector3.zero;Vector3rot=Vector3.zero;Vector3sca=Vector3.zero;foreach(XmlElementtransform

6、ingameObjects.ChildNodes){foreach(XmlElementprsintransform.ChildNodes){if(prs.Name=="position"){foreach(XmlElementpositioninprs.ChildNodes){switch(position.Name){case"x":pos.x=float.Parse(position.InnerText);break;case"y":pos.y=float.Parse(position.InnerText);56575859606162636465

7、66676869707172737475767778break;case"z":pos.z=float.Parse(position.InnerText);break;}}}elseif(prs.Name=="rotation"){foreach(XmlElementrotationinprs.ChildNodes){switch(rotation.Name){case"x":rot.x=float.Parse(rotation.InnerText);break;case"y":rot.y=float.Parse(rotation.InnerText);

8、break;case"z":rot.z=float.Parse(rotation

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

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

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