c# - 自定义 .plist 文件未添加到 ios 项目

标签 c# ios xcode unity3d plist

我将 Material 路径存储在 Unity 的 .plist 中,并在运行时在我的对象中渲染它们。代码如下所示:

public static Dictionary<string, object> uiElements = (Dictionary<string, object>)Plist.readPlist("Assets/EditUI.plist");

foreach (string key in User.purchasedItems.Keys) 
{
    GameObject tmpObj = (GameObject)Instantiate(Resources.Load(key) ,position ,Quaternion.identity);
    tmpObj.transform.localScale = Vector3.one;
    tmpObj.SetActive(true);
}

它在 Unity 编辑器中运行良好,但是当我构建 iOS(Xcode 项目)时,没有加载任何内容。一切都是空的。我不知道问题是出在 plist 路径上还是在运行时加载。与自定义plist相关的东西也发布在这里没有解决方案:

http://answers.unity3d.com/questions/468667/custom-plist-file-not-added-to-ios-project.html

最佳答案

您需要使用 Unity's iOS Scripting API将文件添加到 Xcode 项目。创建一个执行如下操作的 PostProcessBuild 脚本:

[PostProcessBuild]
public static void OnPostProcessBuild(BuildTarget buildTarget, string path)
{
    // Go get pbxproj file
    string projPath = path + "/Unity-iPhone.xcodeproj/project.pbxproj";

    // PBXProject class represents a project build settings file,
    // here is how to read that in.
    PBXProject proj = new PBXProject ();
    proj.ReadFromFile (projPath);

    // This is the Xcode target in the generated project
    string target = proj.TargetGuidByName ("Unity-iPhone");

    // Copy plist from the project folder to the build folder
    FileUtil.CopyFileOrDirectory ("Assets/EditUI.plist", path + "/EditUI.plist");
    proj.AddFileToBuild (target, proj.AddFile("EditUI.plist", "EditUI.plist"));

    // Write PBXProject object back to the file
    proj.WriteToFile (projPath);
}

关于c# - 自定义 .plist 文件未添加到 ios 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33408638/

相关文章:

c# - 从完整文件路径获取文件夹名称

c# - 如何为 TcpClient 实现证书固定

ios - 动态调整弹出窗口大小时防止动画

iOS 模拟器在屏幕的 3/4 处显示黑色

ios - 没有为 URL 方案 itms-apps 注册处理程序 - 评分按钮模拟器

c# - SslStream.WriteAsync "The BeginWrite method cannot be called when another write operation is pending"

c# - 使用动态类型

iphone - UIWebView - 在 <img> 标签上启用操作表

ios - NSInvalidUnarchiveOperationException,UIStoryboardShowSegueTemplate

ios - 通过 iOS 8 Widget 断开蓝牙设备