直接上脚本,需要用的时候在需要的地方调用就好。

如:

//获取设别的最大内存,作为判断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)的更多相关文章

  1. js判断当前设备

    最近用bootstrap做自适应,发现仍然很难很好的兼容web端和PC端的现实. 仔细观察百度,淘宝,京东等大型网站,发现这些网站都有对应不同客户端的子站. 例如: 站点 PC端url web端url ...

  2. Java判断访问设备为手机、微信、PC工具类

    package com.lwj.util; import javax.servlet.http.HttpServletRequest; /** * 判断访问设备为PC或者手机--工具类 * * @de ...

  3. Android 编程下判断当前设备是手机还是平板

    /** * 判断当前设备是手机还是平板,代码来自 Google I/O App for Android * @param context * @return 平板返回 True,手机返回 False ...

  4. Android 判断当前设备是手机还是平板

    Android开发需要适配手机和平板,有些需求实现时就要求判断设备是手机还是平板.网上很多说通过设备尺寸.DPI.版本号.是否具备电话功能等进行判断,不过都不算太精确.这里分享一个简洁给力的方法(官方 ...

  5. JS判断访问设备、客户端操作系统类型

    先给出一个实例:判断windows.linux.android 复制以下代码另存为html文件即可. <html> <head> <title>判断操作系统< ...

  6. PHP简单判断手机设备的方法

    本文实例讲述了PHP简单判断手机设备的方法.分享给大家供大家参考,具体如下: 现在移动互联网越来越发到,很多的网站都普及了手机端浏览,为了更好的让网页在手机端显示,我们都选择了使用CSS媒体查询制作响 ...

  7. JSP判断移动设备

    日期: 2014年3月6日 人员::铁锚 看到了一篇很好的文章, <在天猫,前端做什么?>,里面有天猫php判断移动设备的正则(个人猜测),觉得很好用,于是就决定移植到JSP里面. jsp ...

  8. JS判断当前设备是 PC IOS Andriod

    JS判断当前设备是 PC IOS Andriod <script > window.onload = function(){ var isPc = IsPC(); var isAndroi ...

  9. 【Android】Android 代码判断当前设备是否为模拟器

    [Android]Android 代码判断当前设备是否为模拟器 方法比较简单,直接粘贴代码 //判断当前设备是否是模拟器.如果返回TRUE,则当前是模拟器,不是返回FALSE public stati ...

随机推荐

  1. 峰回路转的提权08r2服务器

    事前日下这个站的时候说实话,略微的蛋疼.其过程就不写了,就讲讲提权吧.可能图片有点暗.看看我写这篇文章的时候就知道了. 这个学校我好多同学在里面读书,就萌生了.日下这个站的想法. 拿到shell,理所 ...

  2. cordova run android 可能遇到的错误解决

    运行: ionic cordova build 等待下载,然后根据提示 输入android或者ios平台,即可 运行cordova run android 报错: 最快捷的解决方法就是使用Androi ...

  3. Python中__new__和__init__的区别与联系

    __new__ 负责对象的创建而 __init__ 负责对象的初始化. __new__:创建对象时调用,会返回当前对象的一个实例 __init__:创建完对象后调用,对当前对象的一些实例初始化,无返回 ...

  4. 提供Web相关的个工具类

    package com.opslab.util.web; import com.opslab.util.ConvertUtil;import com.opslab.util.StringUtil; i ...

  5. git clone 使用用户名和密码

    git clone http://邮箱(或用户名):密码@仓库 示例: 邮箱 xw@qq.com 密码: xw 仓库: http://git.test.com/abc/demo 注意: 邮箱中的 @ ...

  6. Python 初级 5 判断再判断(四)

    一 .复习 分支:完成测试并根据结果做出判断称为分支. 代码块:一行或放在一起的多行代码 缩进:一个代码行稍稍靠右一点 关系操作符(比较操作符):==, >, >=, <, < ...

  7. 转 Java连接Oracle数据库的简单示例

    https://www.cnblogs.com/joyny/p/11176643.html https://community.oracle.com/thread/4096458 import jav ...

  8. 123457123456#0#----com.ppGame.ChengYu43--前拼后广--成语caicaicai_pp

    com.ppGame.ChengYu43--前拼后广--成语caicaicai_pp

  9. Spring MVC 验证表单

      在实际工作中,得到数据后的第一步就是检验数据的正确性,如果存在录入上的问题,一般会通过注解校验,发现错误后返回给用户,但是对于一些逻辑上的错误,比如购买金额=购买数量×单价,这样的规则就很难使用注 ...

  10. CentOS 7/6系统升级内核版本到5.2.2

    由于公司服务器新业务需要,需要将CentOS 7系统的内核(3.10.0-229)进行升级. 关于内核版本的定义:版本性质:主分支ml(mainline),稳定版(stable),长期维护版lt(lo ...