使用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

如有错误,还望指正!

时间: 2024-08-26 02:11:51

使用SystemInfo类获取Unity3D运行设备的各类信息(CPU类型,显卡类型等)的相关文章

使用SYSTEMINFO类获取UNITY3D运行设备的各类信息

//设备的模型 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 Ge

关于Android的Build类——获取Android手机设备各种信息

经常遇到要获取Android手机设备的相关信息,来进行业务的开发,比如经常会遇到要获取CPU的类型来进行so库的动态的下载.而这些都是在Android的Build类里面.相关信息如下: private String loadSystemInfo() { StringBuilder sb = new StringBuilder(); sb.append("主板:" + Build.BOARD + "\n"); sb.append( "系统启动程序版本号:&q

使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法

Java提供了Class类,可以通过编程方式获取类别的字段和方法,包括构造方法 获取Class类实例的方法: 类名.class 实例名.getClass() Class.forName(className) public class RefTest { @Test public void testRef(){ //Class cls = RefTest.class; //Class.forName("com.jboa.service.RefTest"); //new RefTest()

JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件

package ioTest.io3; import java.io.File; /* * 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件 . * 并将文件夹和文件名称打印在控制台上面.并且要显示文件目录的层级 * 注:运用了递归的算法. */ public class FileDemo3 { public static void main(String[] args) { File dir=new File("F:\\黑马学习日程\\"); //File dir=new Fi

Android学习笔记(37):用Configuration类获取和监听设备信息

Configuration类用于描述手机设备上的配置信息.有时候我们的app需要获取手机的系统信息,并根据手机的信息来调整我们的app,这时候我们就需要用到Configuration类. (1)获取Configuration对象 调用Activity的方法获取系统的Configuration对象: Configuration config = getResources().getConfiguration(); (2)获取设备系统信息 在获取了Configuration对象之后,直接访问Conf

static关键字,引发的spring普通类获取spring的bean的思考

在c++和java中static关键字用于修饰静态成员变量和成员函数 举例一个普通的javabean class AA { int a; static int b; geta/seta;//此处省略getset getb/setb; } 如果创建了一个对象AA, AA a =new AA(); 这个时候只会在内存中给这个对象分配四个字节,也就是a变量所占的字节数,因为static申明的全局变量在全局区中,是所有这个类的对象共有的,例如: a.setB(10); AA b =new A(); Sy

Android之使用MediaMetadataRetriever类获取媒体信息

一.昨天.介绍了使用MediaMetadataRetriever类来获取视频第一帧:http://blog.csdn.net/u012561176/article/details/47858099,今天,来介绍一下使用MediaMetadataRetriever类获取媒体信息. ??1.当中用到了MediaMetadataRetriever类的无參构造函数:MediaMetadataRetriever() 2.当中用到了MediaMetadataRetriever类的一些经常用法:setData

POI读取excel单元格,获取单元格各类型值,返回字符串类型

package a; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.text.DecimalFormat; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.h

servlet和普通类获取资源文件的方法

package cn.servlet.demo1; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.util.Properties; import javax.servlet