Unity_如何判断应用设备内存小于1G(内容可定制为根据机器配置进行不同LOD)
直接上脚本,需要用的时候在需要的地方调用就好。
如:
//获取设别的最大内存,作为判断LOD等级和决定1G以下设备不能进游戏
#if UNITY_ANDROID && !UNITY_EDITOR
meminfo.gc_Collect();
#endif
meminfo脚本
using UnityEngine;
using System;
using System.Collections; #if UNITY_ANDROID
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
#endif #if UNITY_IPHONE || UNITY_IOS
using System.Runtime.InteropServices;
#endif public class meminfo {
#if !UNITY_EDITOR && !UNITY_WEBPLAYER #if UNITY_ANDROID
public struct meminf{
//all numbers are in kiloBytes
public int memtotal;
public int memfree;
public int active;
public int inactive;
public int cached;
public int swapcached;
public int swaptotal;
public int swapfree;
} public static meminf minf = new meminf(); private static Regex re = new Regex(@"\d+"); public static bool getMemInfo(){ if(!File.Exists("/proc/meminfo")) return false; FileStream fs = new FileStream("/proc/meminfo", FileMode.Open, FileAccess.Read, FileShare.Read);
StreamReader sr = new StreamReader(fs); string line;
while((line = sr.ReadLine())!=null){
line = line.ToLower().Replace(" ","");
if(line.Contains("memtotal")){ minf.memtotal = mVal(line); }
if(line.Contains("memfree")){ minf.memfree = mVal(line); }
if(line.Contains("active")){ minf.active = mVal(line); }
if(line.Contains("inactive")){ minf.inactive = mVal(line); }
if(line.Contains("cached") && !line.Contains("swapcached")){ minf.cached = mVal(line); }
if(line.Contains("swapcached")){ minf.swapcached = mVal(line); }
if(line.Contains("swaptotal")){ minf.swaptotal = mVal(line); }
if(line.Contains("swapfree")){ minf.swapfree = mVal(line); }
} sr.Close(); fs.Close(); fs.Dispose();
return true;
} private static int mVal(string s){
Match m = re.Match(s); return int.Parse(m.Value);
} public static void gc_Collect() {
var jc = new AndroidJavaClass("java.lang.System");
jc.CallStatic("gc");
jc.Dispose();
} #endif #if UNITY_IPHONE || UNITY_IOS public struct meminf{
//all numbers are in bytes
public int memtotal;
public int memfree;
public int memused;
} public static meminf minf = new meminf(); [DllImport("__Internal")]
private static extern int igetRam(bool what); public static bool getMemInfo(){ int rt; rt = minf.memfree = igetRam(true);//free
rt = minf.memused = igetRam(false);//used
if(rt==-) return false; minf.memtotal = minf.memfree + minf.memused; return true; } #endif #endif
}
Unity_如何判断应用设备内存小于1G(内容可定制为根据机器配置进行不同LOD)的更多相关文章
- js判断当前设备
最近用bootstrap做自适应,发现仍然很难很好的兼容web端和PC端的现实. 仔细观察百度,淘宝,京东等大型网站,发现这些网站都有对应不同客户端的子站. 例如: 站点 PC端url web端url ...
- Java判断访问设备为手机、微信、PC工具类
package com.lwj.util; import javax.servlet.http.HttpServletRequest; /** * 判断访问设备为PC或者手机--工具类 * * @de ...
- Android 编程下判断当前设备是手机还是平板
/** * 判断当前设备是手机还是平板,代码来自 Google I/O App for Android * @param context * @return 平板返回 True,手机返回 False ...
- Android 判断当前设备是手机还是平板
Android开发需要适配手机和平板,有些需求实现时就要求判断设备是手机还是平板.网上很多说通过设备尺寸.DPI.版本号.是否具备电话功能等进行判断,不过都不算太精确.这里分享一个简洁给力的方法(官方 ...
- JS判断访问设备、客户端操作系统类型
先给出一个实例:判断windows.linux.android 复制以下代码另存为html文件即可. <html> <head> <title>判断操作系统< ...
- PHP简单判断手机设备的方法
本文实例讲述了PHP简单判断手机设备的方法.分享给大家供大家参考,具体如下: 现在移动互联网越来越发到,很多的网站都普及了手机端浏览,为了更好的让网页在手机端显示,我们都选择了使用CSS媒体查询制作响 ...
- JSP判断移动设备
日期: 2014年3月6日 人员::铁锚 看到了一篇很好的文章, <在天猫,前端做什么?>,里面有天猫php判断移动设备的正则(个人猜测),觉得很好用,于是就决定移植到JSP里面. jsp ...
- JS判断当前设备是 PC IOS Andriod
JS判断当前设备是 PC IOS Andriod <script > window.onload = function(){ var isPc = IsPC(); var isAndroi ...
- 【Android】Android 代码判断当前设备是否为模拟器
[Android]Android 代码判断当前设备是否为模拟器 方法比较简单,直接粘贴代码 //判断当前设备是否是模拟器.如果返回TRUE,则当前是模拟器,不是返回FALSE public stati ...
随机推荐
- YII2 composer update 报错解决一例-requires bower-asset/jquery 2.2
➜ yii-advanced composer update Loading composer repositories with package information Updating depe ...
- osg创建灯光
添加光照 osg::ref_ptr<osg::Node> MyOSGLoadEarth::CreateNode() { osg::ref_ptr<osg::Group> _ro ...
- ES6深入浅出-3 三个点运算 & 新版字符串-1.函数与对象的语法糖
主要讲的内容 时间充裕的话就讲,模板字面量 默认参数值 首先讲es6之前,我们是怎么做的.例如我们要写一个求和的函数, 请两个参数的和,但是如果有的人就是穿一个参数呢? 那么b没有传值,b的值是多少呢 ...
- 使用ffmpeg.exe进行转码参数说明
使用ffmpeg.exe进行转码参数说明 摘自:https://blog.csdn.net/coloriy/article/details/47337641 2015年08月07日 13:04:32 ...
- CentOS7下yum安装Redis
(1).Redis概述 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value(键值型)数据库(非关系型数据库),并提供多种语言的API. Redi ...
- IOS 根据数组的个数对UIButton进行重复或循环使用
//设置一个view view = [[UIView alloc] initWithFrame:CGRectMake(0, 38, 320, 30)]; view.backgroundColor = ...
- python 中删除文件中的空白行(回车)
staff.txt 内容: Alex Li,Engineer,1363432345,alex@126.com Jack Zhang,Salesman,Sales Dep,15697892356,jac ...
- 【Leetcode_easy】1137. N-th Tribonacci Number
problem 1137. N-th Tribonacci Number solution: class Solution { public: int tribonacci(int n) { ) ; ...
- JSON Hijacking漏洞
https://github.com/SkyLined/LocalNetworkScanner JS.利用浏览器漏洞当对方打开网址时,扫描对方内网信息 https://www.freebuf.com/ ...
- 最新 企叮咚java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿. 企叮咚等10家互联网公司的校招Offer,因为某些自身原因最终选择了 企叮咚.6.7月主要是做系统复习.项目复盘.Leet ...