查看Unity当前Fps和内存

这篇具有很好参考价值的文章主要介绍了查看Unity当前Fps和内存。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

using System;
using System.Diagnostics;
using UnityEngine;
using UnityEngine.Profiling;
using UnityEngine.UI;

public class DlgFramesList : MonoBehaviour
{
    public Text fpsText;
    public Text heapSizeText;
    public Text usedSizeText;
    public Text allocatedMemoryText;
    public Text reservedMemoryText;
    public Text unusedReservedMemoryText;
    public Text cpuText;

    private int _index = 1;
    private int _indexCount = 100;
    private int _framesIndex;

    private float _fps;
    private float _curTime;
    private float _lastTime;
    private float _fpsDelay;

    private TimeSpan _preCpuTime;
    private TimeSpan _curCpuTime;

    private const long Kb = 1024;
    private const long Mb = 1024 * 1024;

    private void Start()
    {
        _fpsDelay = 0.5F;
        _curCpuTime = Process.GetCurrentProcess().TotalProcessorTime;
        _preCpuTime = _curCpuTime;
        _curTime = Time.realtimeSinceStartup;
        _lastTime = _curTime;
    }

    private void Update()
    {
        if (!gameObject.activeSelf)
        {
            return;
        }

        _index++;
        if (_index == _indexCount)
        {
            ShowProfilerMsg();
        }

        _curCpuTime = Process.GetCurrentProcess().TotalProcessorTime;
        if ((_curCpuTime - _preCpuTime).TotalMilliseconds >= 1000)
        {
            ShowCpuMsg();
        }

        _framesIndex++;
        _curTime = Time.realtimeSinceStartup;
        if (_curTime - _lastTime > _fpsDelay)
        {
            ShowFpsMsg();
        }
    }

    private void ShowProfilerMsg()
    {
        _index = 0;
        //堆内存
        if (heapSizeText)
        {
            heapSizeText.text = "堆内存 : " + Profiler.GetMonoHeapSizeLong() / Mb + " Mb";
        }

        //使用的
        if (usedSizeText)
        {
            usedSizeText.text = "使用大小 : " + Profiler.GetMonoUsedSizeLong() / Mb + " Mb";
        }

        // unity分配
        if (allocatedMemoryText)
        {
            allocatedMemoryText.text = "Unity分配 : " + Profiler.GetTotalAllocatedMemoryLong() / Mb + " Mb";
        }

        // 总内存
        if (reservedMemoryText)
        {
            reservedMemoryText.text = "总内存 : " + Profiler.GetTotalReservedMemoryLong() / Mb + " Mb";
        }

        // 未使用内存
        if (unusedReservedMemoryText)
        {
            unusedReservedMemoryText.text = "未使用内存 : " + Profiler.GetTotalUnusedReservedMemoryLong() / Mb + " Mb";
        }
    }

    private void ShowCpuMsg()
    {
        // 间隔时间(毫秒)
        int interval = 1000;
        var value = (_curCpuTime - _preCpuTime).TotalMilliseconds / interval / Environment.ProcessorCount * 100;
        _preCpuTime = _curCpuTime;
        if (cpuText)
        {
            cpuText.text = "CpuValue : " + value.ToString("f2");
        }
    }

    private void ShowFpsMsg()
    {
        _fps = _framesIndex / (_curTime - _lastTime);
        _framesIndex = 0;
        _lastTime = _curTime;
        if (fpsText)
        {
            fpsText.text = "FPS : " + _fps.ToString("f2");
        }
    }
}文章来源地址https://www.toymoban.com/news/detail-764794.html

到了这里,关于查看Unity当前Fps和内存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity开发一个FPS游戏之二

    在之前的文章中,我介绍了如何开发一个FPS游戏,添加一个第一人称的主角,并设置武器。现在我将继续完善这个游戏,打算添加敌人,实现其智能寻找玩家并进行对抗。完成的效果如下: fps_enemy_demo   首先是设计敌人,我们可以在网上找到一些好的免费素材,例如在Unity商

    2024年03月17日
    浏览(24)
  • Unity 实现一个FPS游戏的全过程

    Unity是一款功能强大的游戏引擎,它提供了各种各样的工具和功能,以帮助开发者轻松地创建精美的3D游戏和应用程序。在本文中,我们将使用Unity实现一个FPS游戏的全过程,从场景设计、角色控制、敌人AI到最终的打包发布。 对啦!这里有个游戏开发交流小组里面聚集了一帮

    2024年02月05日
    浏览(31)
  • 【Unity实战】实现一款简单的FPS游戏

    实现一款FPS游戏需要以下步骤: 1.创建场景:在Unity中创建3D场景,设定地形、灯光、天气等环境,新增角色、武器等道具。 2.角色控制:创建角色,并添加Unity内置的角色控制器或自定义控制器脚本,处理角色的移动、射击、跳跃、动作等。 3.武器系统:创建武器模型,添加

    2024年02月06日
    浏览(19)
  • unity之使用FPS第一人称后鼠标消失

    我在使用standard assets里的fps第一人称视角开始游戏后,鼠标消失,后来发现是fps默认将鼠标锁住,只需要找到并点击fps脚本里的mouse look下的Lock Cursor,再次运行,鼠标可以显示出来了

    2024年02月12日
    浏览(19)
  • 【unity实战】一个通用的FPS枪支不同武器射击控制脚本

    实现FPS枪支不同武器效果,比如手枪,喷子,狙击枪,机枪,其实我最开始的想法是先做一个基类脚本,写一些公共属性和方法,然后再起不同的武器脚本这个基础基类,实现不同的武器效果。 这样的实现思路其实是没什么问题的,直到我看到这个视频:https://www.youtube.com

    2024年02月04日
    浏览(22)
  • 【Unity每日一记】模仿FPS射击,用弹痕作画的原理如此简单

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 : unity每日一记 ⭐【软件设计师高频考点暴击】 在csgo中我们可以看到有很多玩家喜欢用弹道来画画,那么其实本质上呢开枪这个行为并没

    2024年02月10日
    浏览(20)
  • 【unity小技巧】实现没有动画的FPS武器摇摆和摆动效果

    添加程序摇摆和摆动是为任何FPS游戏添加一些细节的非常简单的方法。但是并不是所以的模型动画都会配有武器摆动动画效果,在本文中,将实现如何使用一些简单的代码实现武器摇摆和摆动效果,这比设置动画来尝试实现类似效果要容易得多 新增SwayNBobScript代码 代码挂载在

    2024年01月18日
    浏览(19)
  • Linux中该如何查看当前CPU、内存、硬盘占用情况,如何判断当前服务器负载情况

    要查看当前 Linux 系统的 CPU、内存、硬盘占用情况,可以使用以下命令: 查看 CPU 占用情况: 该命令会显示当前系统进程的 CPU 占用情况,以及每个进程占用的 CPU 百分比和内存使用情况等信息。 查看内存占用情况: 该命令会显示当前系统的内存总量、已使用的内存量、空闲

    2024年02月11日
    浏览(32)
  • Linux如何查看当前占用CPU和内存最多的进程

    查看占用 CPU 最高的前10个进程 查看占用内存(MEM)最高的前10个进程 输入 top 命令,然后按下大写M按照内存MEM排序,按下大写P按照CPU排序

    2024年02月17日
    浏览(25)
  • 【制作100个unity实战之2】实现一款简单的FPS游戏

    实现一款FPS游戏需要以下步骤: 1.创建场景:在Unity中创建3D场景,设定地形、灯光、天气等环境,新增角色、武器等道具。 2.角色控制:创建角色,并添加Unity内置的角色控制器或自定义控制器脚本,处理角色的移动、射击、跳跃、动作等。 3.武器系统:创建武器模型,添加

    2024年02月04日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包