在 Unity3D 中使用 Windows.Networking.Sockets

Using Windows.Networking.Sockets in Unity3D

我正在尝试为 Windows Store 移植我们的 Unity 应用程序,但到目前为止我无法让 SDK 工作。我已经到了可以在 Visual Studio 2013 Express for Windows Desktop 中打开 Unity C# 项目的地步(这很奇怪,因为“... for Windows”无法打开 Unity 项目,但仍是开发所必需的)。宏 #if UNITY_WINRT 开始工作,但我似乎无法正确处理 "using" 部分

using UnityEngine;
using System.Collections;
#if UNITY_WINRT
using Windows.Networking.Sockets;
#else
using System.Net;
using System.Net.Sockets;
#endif
using System;
using System.Threading;
using System.Xml;
using System.Collections.Generic;

Windows.Networking.Sockets 下划线是错误的,一般来说,using Windows 似乎不存在......我做错了什么?我应该在使用部分添加一些东西吗?我应该添加一些库吗?

现在我明白为什么 Windows Phone 的应用程序开发人员如此之少,如果开发设置与 Android 或 iOS 相比如此困难和受限(这是受限制,但设置很简单)。

非常感谢您的帮助...

由于您的应用程序在 Visual Studio Express for Desktop 中打开,而不是在 Visual Studio Express for Windows 中打开,所以听起来您是从 Unity 生成了一个 Windows 桌面项目,而不是比 Windows Phone 项目。您需要返回到 Unity 并将 Visual Studio 解决方案重新生成为 Windows Store 或 Windows Phone 解决方案。还要确保你的 VS Express 至少有 Update 2 以允许 Windows Phone 项目。更好:升级到 Visual Studio Community instead of using VS Express. It's still free, but is equivalent to VS Pro and (most importantly) will run Visual Studio Tools for Unity.

您需要使用 #if NETFX_CORE 代替(或除此之外)UNITY_WINRT 才能使用 Windows 运行时。 UNITY_WINRT 将允许将特定功能定位到 Windows Phone 或 Windows Store,但在 Unity 编辑器(它是单声道,而不是 Windows 运行时)。 NETFX_CORE 仅当 运行 在 Windows 运行时而不是在单声道上时才为真。

好吧,我准备好了 运行。我在 Visual Studio 中用 C#(托管)创建了一个 DLL 库。然后我从 mu Unity 应用程序中调用了我需要的方法。