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

如:

//获取设别的最大内存,作为判断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. Spring-AOP @AspectJ切点函数之@annotation()

    @annotation()概述@annotation表示标注了某个注解的所有方法. 下面通过一个实例说明@annotation()的用法. AnnotationTestAspect定义了一个后置切面增 ...

  2. osgViewer

    /* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield * * This library is open source ...

  3. Composer三步曲:安装、使用、发布

    转载地址:https://segmentfault.com/a/1190000011858458 原文是在我自己博客中,小伙伴也可以点阅读原文进行跳转查看,还有好听的背景音乐噢~ 在现代化的PHP开发 ...

  4. Qt bug

    1.Qt5.2.1不支持QQuickwidget来承载qml 2.Qt5.12以及以上,不支持跨线程调用数据库连接 3.线程A不断产生sql语句,需要让两个数据库分别执行这个sql语句.所以在线程A中 ...

  5. JAVA8中接口的一些新用法(springboot环境)

    @Configuration public interface IAbstractConvertStrategy { CacheService getCacheService(); default b ...

  6. 【VS开发】如何判断客户端SOCKET已经断开连接?

    http://biancheng.dnbcw.info/linux/366100.html    最近在做一个服务器端程序,C/S结构.功能方面比较简单就是client端与server端建立连接,然后 ...

  7. 解决jQuery版本冲突

    解决jquery版本冲突问题 <!-- 引入1.6.4版的jq --><script src="http://ajax.googleapis.com/ajax/libs/j ...

  8. laravel 提交空字符串会被转成null解决方法

    在app\Http\Kernel.php文件夹中,注释全局中间件: \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull:: ...

  9. samtools获取uniq reads

    参考地址: https://www.biostars.org/p/56246/ -q INT only include reads with mapping quality >= INT [0] ...

  10. jenkins publish .net core application to linux server

    最近学习Docker与Jenkins, 网上大部分都是关于Jenkins+Git+Docker进行持续远程部署, 我一直在考虑为什么Jenkins和Docker要绑定一块使用, 因为我想单独使用Jen ...