【发布时间】:2017-06-21 10:06:17
【问题描述】:
我有两个 DLL,它们的 PDB 文件已加载到我的 Unity 项目中。一个目标是“为插件选择平台”检查器中的编辑器,位于 Assets/Plugins 文件夹中。其他目标 WSAPlayer,为 SDK 选择了 UWP,为脚本后端选择了 DotNet。它位于 Assets/Plugins/WSA 文件夹中。
当我尝试为 Windows 应用商店构建(SDK:通用 10,目标设备:PC,UWP 构建类型:XAML,UWP SDK:最新安装,构建和运行:本地机器)时,我收到以下错误:
Assets\CubeScript.cs(16,48):错误 CS0246:找不到类型或命名空间名称“Win32HidDevice”(您是否缺少 using 指令或程序集引用?)
构建播放器时出错,因为脚本存在编译器错误
我不希望 UWP 能够加载 Win32HidDevice,我的 UWP DLL 也不使用它,所以它一定来自其他 DLL。该应用程序在编辑器中可以正常调试,如果我还在第一个 DLL 上选中“独立”,那么我可以构建和运行独立应用程序。
在为 WSA 构建时,我需要哪些设置才能让 Unity 忽略 Win32 DLL 并使用 UWP ?
我不认为它是脚本本身,但为了完整起见,它是:
using UnityEngine;
using Zanzibar;
public class OrbScript : MonoBehaviour
{
public Mat mat;
void Start ()
{
MatManager.Instance.MatConnected += MatConnected;
MatManager.Instance.MatDisconnected += MatDisconnected;
MatManager.Instance.Initialize(Communication.AllSupported);
}
private void MatConnected(Mat mat)
{
Debug.LogFormat("Mat {0}", mat.UniqueName);
this.mat = mat;
}
private void MatDisconnected(Mat mat)
{
this.mat = null;
}
void Update ()
{
if (mat == null)
{
GetComponent<Renderer>().material.color = Color.black;
}
else if (mat.TaggedObjects.Count > 0)
{
GetComponent<Renderer>().material.color = Color.green;
}
else if (mat.Touches.Count > 0)
{
GetComponent<Renderer>().material.color = Color.magenta;
}
else
{
GetComponent<Renderer>().material.color = Color.white;
}
}
}
【问题讨论】:
标签: unity3d