专栏首页Unity TechnologyJtro的技术分享:Unity中读取PC的硬件信息

Jtro的技术分享:Unity中读取PC的硬件信息

这个功能似乎没有什么用,但是我在《c#入门到精通》这本书中看到这样的功能,在非unity开发的项目中,假如说你是一个纯c#软件开发者,这个你可以用来保护你的软件,不被肆意传播,起到了很好的著作权保护作用,但是在unity中引用似乎很少,但是,存在即合理。一定有用,所以接下来由鄙人分享这个功能。希望能帮到有需要的人。 首先,新建空工程,然后再新建一个Text文本文件,扩大到画布的大小。如下图所示:

Text组件.PNG

然后新建一个脚本,命名为GetCpuNum,挂载在摄像机上。下面贴出源码,方便大家测试。

//    脚本功能:
//此脚本挂载在:    上
//    初创日期:
//        作者:张曙光
//  第一次修改:
using UnityEngine;

using System.Collections;

using System.Collections.Generic;

public class GetcpuNum: MonoBehaviour

{

    //指定输出文本框

    public UnityEngine.UI.Text messageText;

    //存储临时字符串

    System.Text.StringBuilder info = new System.Text.StringBuilder();

    // Use this for initialization

    void Start()

    {
        //将输出文本框置空
        messageText.text = "";

        info.AppendLine("设备与系统信息:");



        //设备的模型

        GetMessage("设备模型",SystemInfo.deviceModel);

        //设备的名称

        GetMessage("设备名称",SystemInfo.deviceName);

        //设备的类型

        GetMessage("设备类型(PC电脑,掌上型)",SystemInfo.deviceType.ToString());

        //系统内存大小

        GetMessage("系统内存大小MB",SystemInfo.systemMemorySize.ToString());

        //操作系统

        GetMessage("操作系统",SystemInfo.operatingSystem);

        //设备的唯一标识符

        GetMessage("设备唯一标识符",SystemInfo.deviceUniqueIdentifier);

        //显卡设备标识ID

        GetMessage("显卡ID",SystemInfo.graphicsDeviceID.ToString());

        //显卡名称

        GetMessage("显卡名称", SystemInfo.graphicsDeviceName);

        //显卡类型

        GetMessage("显卡类型",SystemInfo.graphicsDeviceType.ToString());

        //显卡供应商

        GetMessage("显卡供应商", SystemInfo.graphicsDeviceVendor);

        //显卡供应唯一ID

        GetMessage("显卡供应唯一ID", SystemInfo.graphicsDeviceVendorID.ToString());

        //显卡版本号

        GetMessage("显卡版本号",SystemInfo.graphicsDeviceVersion);

        //显卡内存大小

        GetMessage("显存大小MB",SystemInfo.graphicsMemorySize.ToString());

        //显卡是否支持多线程渲染

        GetMessage("显卡是否支持多线程渲染",SystemInfo.graphicsMultiThreaded.ToString());

        //支持的渲染目标数量

        GetMessage("支持的渲染目标数量", SystemInfo.supportedRenderTargetCount.ToString());
        //输出

        messageText.text = info.ToString();

    }



    // Update is called once per frame

    void Update()

    {

        //退出

        if (Input.GetKeyUp("escape"))

        {



            if (Input.GetKeyUp("escape"))

            {

                Application.Quit();

            }

        }

    }

    void GetMessage(params string[] str)

    {

        if(str.Length==2)

        {

            info.AppendLine(str[0]+":"+str[1]);

        }

    }  

}

保存之后关掉Mono,点击摄像机,把text组件拖到MessageText中。 然后再运行,你会看到类似下图的效果。

运行效果图.PNG

注:由于硬件的不同读取的信息也不一样。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Jtro的技术分享:三言两语说反射(unity中使用反射)

    程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。

    LittleU
  • 【玩转腾讯云】游戏多媒体引擎的体验与开发(二)

    注意,这里是sdk下载,不是demo了.下载好了之后还需要解压一下,新建一个unity工程 ,直接将sdk放到Asset文件夹下.

    LittleU
  • 数据结构与算法(十)

    本系列文章的前几篇讲解了几种算法,.冒泡排序,插入排序,选择排序,但是,也许你会感觉到,这几个算法除了偶尔面试中会和面试官聊上几句,实际的编程时间,几乎没有再使...

    LittleU
  • nginx根据请求头分流到不同后端服务

    最近在做一个需求开发:根据请求头的不同,nginx将请求分发到不同的后端服务;需要修改kubernetes的ingress-nginx-controller的源...

    我的小碗汤
  • 如何在windows安装php redis扩展

    很多地方都能下载到redis程序,官方的地址是 https://redis.io/download ,根据自己windows版本,下载合适自己系统的程序。同时g...

    皇上得了花柳病
  • “default关键字”与“序列化传输”的注意事项

    注:此乃“流水帐”式的水文,营养成分较低,高手请自动无视以下内容,否则引起消化不良等症状等,一概不管 ^_^ c#自从3.0开始,提供了很多便捷的语法特性(俗称...

    菩提树下的杨过
  • mac goLand快捷键

      macos先按Command+`,` 在自定义快捷(keymap)里搜索 Variable (在Refactor->Extract下面)

    用户7798898
  • 相信吗,caffe上不写代码就可以运行mnist数据集训练与测试....

    本文基于Caffe-Windows系统下实现mnist手写数字识别LeNet网络的训练与测试。关于Caffe-Windows的安装与配置请参考下面的链接即可:

    OpenCV学堂
  • 2013百度校招笔试真题以及解析(内存管理及其优缺点总结)

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

    大黄大黄大黄
  • php中0与空 Null false的区别 复制代码

    这一点可以用echo gettype('');和echo gettype(NULL);来打印看看!而===运算符是不单比较值,还有比较类型的,所以第三个为fal...

    双面人

扫码关注云+社区

领取腾讯云代金券