电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

unity3D技术之导出Unity场景的所有游戏对象信息VIP免费

unity3D技术之导出Unity场景的所有游戏对象信息_第1页
1/12
unity3D技术之导出Unity场景的所有游戏对象信息_第2页
2/12
unity3D技术之导出Unity场景的所有游戏对象信息_第3页
3/12
导出Unity场景的所有游戏对象信息,一种是XML 一种是JSON。本篇文章我们把游戏场景中游戏对象的、旋转、缩放、平移与 Prefab 的名称导出在 XML 与 JSON 中。然后解析刚刚导出的XML 或 JSON 通过脚本把导出的游戏场景还原。在 Unity官网上下载随便下载一个demo Project,如下图所示这是我刚刚在官网上下载的一个范例程序。 接着将层次视图中的所有游戏对象都封装成 Prefab 保存在资源路径中,这里注意一下如果你的Prefab 绑定的脚本中有public Object 的话 ,需要在代码中改一下。。用 Find() FindTag()这类方法在脚本中Awake()方法中来拿,不然 Prefab 动态加载的时候无法赋值的,如下图所示,我把封装的Prefab 对象都放在了 Resources/Prefab 文件夹下。 OK,现在我们就需要编写我们的导出工具、在 Project 视图中创建 Editor 文件夹,接着创建脚本MyEditor 。如下图所示。 因为编辑的游戏场景数量比较多,导出的时候我们需要遍历所有的游戏场景,一个一个的读取场景信息。然后取得游戏场景中所有游戏对象的Prefab 的 名称 旋转 缩放 平移。有关 XML 的使用请大家看我的上一篇文章: Unity3D 研究院之使用 C#合成解析 XML 与 JSON(四十一) 代码中我只注释重点的部分,嘿嘿。 MyEditor.cs C# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 using UnityEngine; using System.Collections; using UnityEditor; using System.Collections.Generic; using System.Xml; using System.IO; using System.Text; using LitJson; public class MyEditor : Editor { //将所有游戏场景导出为XML 格式 [MenuItem ("GameObject/ExportXML")] static void ExportXML () { string filepath = Application.dataPath + @"/StreamingAssets/my.xml"; if(!File.Exists (filepath)) { File.Delete(filepath); } XmlDocument xmlDoc = new XmlDocument(); XmlElement root = xmlDoc.CreateElement("gameObjects"); //遍历所有的游戏场景 foreach (UnityEditor.EditorBuildSettingsScene S in UnityEditor.EditorBuildSettings.scenes) { //当关卡启用 if (S.enabled) { //得到关卡的名称 string name = S.path; //打开这个关卡 EditorApplication.OpenScene(name); ...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

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

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部