C# UnityEngine.NET3.5在没有系统管理的情况下获取硬件ID

C# UnityEngine.NET3.5在没有系统管理的情况下获取硬件ID,c#,unity3d,C#,Unity3d,我正在寻找一种方法来获取用户的HWID,方法如下: 但失败了。系统管理在UnityEngine 4上没有完全移植,我需要找到一个替代方案,至少可以访问CPUID或其他东西 有什么想法吗?使用它是为了统一。但是,需要检查的一件事是,如果它运行在不提供获取唯一id方法的平台上,它可以返回SystemInfo.unsupportedIdentifier的值 using UnityEngine; public class NewBehaviourScript : MonoBehaviour {

我正在寻找一种方法来获取用户的HWID,方法如下:

但失败了。系统管理在UnityEngine 4上没有完全移植,我需要找到一个替代方案,至少可以访问CPUID或其他东西


有什么想法吗?

使用它是为了统一。但是,需要检查的一件事是,如果它运行在不提供获取唯一id方法的平台上,它可以返回
SystemInfo.unsupportedIdentifier的值

using UnityEngine;

public class NewBehaviourScript : MonoBehaviour 
{
    void Start () {
        if (SystemInfo.unsupportedIdentifier != SystemInfo.deviceUniqueIdentifier)
        {
            // use SystemInfo.deviceUniqueIdentifier
        }   
    }
}

请确保您正在运行Unity 4.6.2或更新版本,但它在4.6.2中已修复。

仅供参考,CPUID不是特定于计算机的,相同型号的所有处理器都共享相同的CPUID。CPUID中的唯一id在20世纪90年代末奔腾处理器时代停止出现。然后BIOS id将更适用。大多数BIOS不发布它,并且默认情况下禁用了它。您是否计划让您的游戏仅在windows上运行?如果是这样的话,你可以做一些简单的选择。它也在linux上运行。好吧,R.I.P.我在4.5.5f1上,而且不能更改,因为我正在将自己添加到游戏DLL中。谢谢,不过应该没问题。人们可以改变吗?
SystemInfo.unsupportedIdentifier
在2017.4之前没有定义,在旧版Unity中是否有一个等效字符串需要测试?@JesseChisholm它是可用的,只是如果你在文档网站上更改版本,它不会让你留在页面上。这是2008.1版本@ScottChamberlain我不是指文档中的,而是指代码中的。当使用早于2017.4的Unity(如5.6)时,是否存在一些类似于
系统的已知值。不支持的标识符
?或者只希望
SystemInfo.deviceUniqueIdentifier
不受支持时为空?@JesseChisholm
System.unsupportedIdentifier
。你不需要知道这个值是多少。只要执行
if(SystemInfo.unsupportedIdentifier!=SystemInfo.deviceUniqueIdentifier){…}