使用SystemInfo类获取Unity3D运行设备的各类信息(CPU类型,显卡类型等)
Posted 茫茫江浸月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用SystemInfo类获取Unity3D运行设备的各类信息(CPU类型,显卡类型等)相关的知识,希望对你有一定的参考价值。
1.概述
2.创建演示项目
3.编写示例代码
4.执行代码
6.其他
1.概述
研究完Unity3D的Application类后,就该看了一下SystemInfo类。这两个类都在UnityEngine类中。
SystemInfo类中的属性都是只读属性,存储着运行平台的一些信息,主要是显卡和设备信息,如:设备的名称、设备的类型、显卡的类型,显卡的名称、显卡供应商(制造商)、系统内存大小、显存大小、支持的渲染目标数量等等。
2.创建演示项目
(1)打开Unity3D,新建一个项目;
(2)新建一个C#脚本,并将脚本绑定到主相机(MianCamera)上;
(3)单击菜单栏上的GameObject,选择UI,添加一个Text。
3.编写示例代码
(1)双击打开刚才新建的脚本,开始编辑代码(其实SystemInfo类很简单)。
编写的代码如下所示:
1 using UnityEngine; 2 3 using System.Collections; 4 5 using System.Collections.Generic; 6 7 public class GameControllerScript: MonoBehaviour 8 9 { 10 11 //指定输出文本框 12 13 public UnityEngine.UI.Text messageText; 14 15 //存储临时字符串 16 17 System.Text.StringBuilder info = new System.Text.StringBuilder(); 18 19 // Use this for initialization 20 21 void Start() 22 23 { 24 25 26 27 //将输出文本框置空 28 29 messageText.text = ""; 30 31 info.AppendLine("设备与系统信息:"); 32 33 34 35 //设备的模型 36 37 GetMessage("设备模型",SystemInfo.deviceModel); 38 39 //设备的名称 40 41 GetMessage("设备名称",SystemInfo.deviceName); 42 43 //设备的类型 44 45 GetMessage("设备类型(PC电脑,掌上型)",SystemInfo.deviceType.ToString()); 46 47 //系统内存大小 48 49 GetMessage("系统内存大小MB",SystemInfo.systemMemorySize.ToString()); 50 51 //操作系统 52 53 GetMessage("操作系统",SystemInfo.operatingSystem); 54 55 //设备的唯一标识符 56 57 GetMessage("设备唯一标识符",SystemInfo.deviceUniqueIdentifier); 58 59 //显卡设备标识ID 60 61 GetMessage("显卡ID",SystemInfo.graphicsDeviceID.ToString()); 62 63 //显卡名称 64 65 GetMessage("显卡名称", SystemInfo.graphicsDeviceName); 66 67 //显卡类型 68 69 GetMessage("显卡类型",SystemInfo.graphicsDeviceType.ToString()); 70 71 //显卡供应商 72 73 GetMessage("显卡供应商", SystemInfo.graphicsDeviceVendor); 74 75 //显卡供应唯一ID 76 77 GetMessage("显卡供应唯一ID", SystemInfo.graphicsDeviceVendorID.ToString()); 78 79 //显卡版本号 80 81 GetMessage("显卡版本号",SystemInfo.graphicsDeviceVersion); 82 83 //显卡内存大小 84 85 GetMessage("显存大小MB",SystemInfo.graphicsMemorySize.ToString()); 86 87 //显卡是否支持多线程渲染 88 89 GetMessage("显卡是否支持多线程渲染",SystemInfo.graphicsMultiThreaded.ToString()); 90 91 //支持的渲染目标数量 92 93 GetMessage("支持的渲染目标数量", SystemInfo.supportedRenderTargetCount.ToString()); 94 95 96 97 98 99 100 101 102 103 104 105 //输出 106 107 messageText.text = info.ToString(); 108 109 } 110 111 112 113 // Update is called once per frame 114 115 void Update() 116 117 { 118 119 //退出 120 121 if (Input.GetKeyUp("escape")) 122 123 { 124 125 126 127 if (Input.GetKeyUp("escape")) 128 129 { 130 131 Application.Quit(); 132 133 } 134 135 } 136 137 } 138 139 void GetMessage(params string[] str) 140 141 { 142 143 if(str.Length==2) 144 145 { 146 147 info.AppendLine(str[0]+":"+str[1]); 148 149 } 150 151 } 152 153 }
(2)保存代码,转到Unity3D编辑器中,将Text绑定到脚本。
4.执行代码
执行代码后可以显示运行设备的一些信息。
(1)在Unity3D编辑器中运行的结果:
(1)在Windows中的运行的结果:
(1)在android中的运行的结果:
6.其他
有兴有趣的话,可以查看官方的文档了解SystemInfo的其他属性和方法,链接是:https://docs.unity3d.com/ScriptReference/SystemInfo.html
如有错误,还望指正!
以上是关于使用SystemInfo类获取Unity3D运行设备的各类信息(CPU类型,显卡类型等)的主要内容,如果未能解决你的问题,请参考以下文章
Unity3D的SystemInfo类,用于获取运行设备硬件信息(CPU显卡类型等)
Unity3D的SystemInfo类,用于获取运行设备硬件信息(CPU显卡类型等)