Unity3D 程序获取当前系统剩余内存

using UnityEngine;
using System.Collections;
using System.Text;
using System;
using System.Runtime.InteropServices;

public class GetMemoryClass : MonoBehaviour 
{
	private long avaliableMb;

	void Start () 
	{
		//获取当前系统
		//SystemInfo.operatingSystem;
	}
	void Update()
	{
		#region 检测内存是否溢出

		GetMemoryStatus();

		#endregion
	}

	[StructLayout(LayoutKind.Sequential)]
	public struct MEMORY_INFO
	{
		public uint dwLength;
		public uint dwMemoryLoad;
		//系统内存总量
		public ulong dwTotalPhys;
		//系统可用内存
		public ulong dwAvailPhys;
		public ulong dwTotalPageFile;
		public ulong dwAvailPageFile;
		public ulong dwTotalVirtual;
		public ulong dwAvailVirtual;
	}

	[DllImport("kernel32")]
	public static extern void GlobalMemoryStatus(ref MEMORY_INFO meminfo);
//	[DllImport("User32")]
//	public static extern void GetWindowThreadProgressld (IntPtr hwnd,out int id);

	private void GetMemoryStatus()
	{
		MEMORY_INFO MemInfo;
		MemInfo = new MEMORY_INFO();
		GlobalMemoryStatus(ref MemInfo);

		avaliableMb = Convert.ToInt64( MemInfo.dwAvailPhys.ToString())/1024/1024;

		print("FreeMemory:" + Convert.ToString(avaliableMb) +" MB");
		if (avaliableMb<200) 
		{
			Debug.Log ("内存不足!");	
			//弹出内存警告
		} 
		else
		{
			Debug.Log ("可以使用");	
			//自动取消内存警告
			Debug.Log(Environment.WorkingSet.ToString());

		}
	}
}

 

转载于:https://my.oschina.net/UnityZY/blog/744044

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值