[unity] Enable Full StackTraces 的方法,打开泄漏检查的全堆栈显示

这篇具有很好参考价值的文章主要介绍了[unity] Enable Full StackTraces 的方法,打开泄漏检查的全堆栈显示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如果 unity 老是报错: A Native Collection has not been disposed, resulting in a memory leak. Enable Full StackTraces

此时需要打开泄漏检查的全堆栈显示(比较耗费性能,平时不要打开)

方法如下:在Editor中加入一个类文件,内容如下:

using System.Linq;
using System.Collections;
using UnityEngine;
using UnityEditor;
using Unity.Collections;
 
namespace Assets.Scripts.Editor
{
    public class Leak Detection Mode
    {
        [MenuItem("Custom/Show Leak Detection Mode")]
        static void ShowLeakDetection()
        {
            EditorUtility.DisplayDialog("内存泄漏检测设置", string.Format("NativeLeakDetection.Mode:{0}", NativeLeakDetection.Mode.ToString()), "OK");
        }
 
        [MenuItem("Custom/Leak Detection Enabled")]
        static void LeakDetectionEnabled()
        {
            NativeLeakDetection.Mode = NativeLeakDetectionMode.Enabled;
        }
 
        [MenuItem("Custom/Leak Detection Enabled", true)]  //第二个参数表示本函数是菜单是否可用的验证函数
        static bool ValidateLeakDetectionEnabled()
        {
            return NativeLeakDetection.Mode != NativeLeakDetectionMode.Enabled;
        }
 
        [MenuItem("Custom/Leak Detection Enabled With StackTrace")]
        static void LeakDetectionEnabledWithStackTrace()
        {
            NativeLeakDetection.Mode = NativeLeakDetectionMode.EnabledWithStackTrace;
        }
 
        [MenuItem("Custom/Leak Detection Enabled With StackTrace", true)]  //第二个参数表示本函数是菜单是否可用的验证函数
        static bool ValidateLeakDetectionEnabledWithStackTrace()
        {
            return NativeLeakDetection.Mode != NativeLeakDetectionMode.EnabledWithStackTrace;
        }
 
        [MenuItem("Custom/Leak Detection Disable")]
        static void LeakDetectionDisable()
        {
            NativeLeakDetection.Mode = NativeLeakDetectionMode.Disabled;
        }
 
        [MenuItem("Custom/Leak Detection Disable", true)]  //第二个参数表示本函数是菜单是否可用的验证函数
        static bool ValidateLeakDetectionDisable()
        {
            return NativeLeakDetection.Mode != NativeLeakDetectionMode.Disabled;
        }
    }
}

这样就给Unity编辑器的菜单里增加 Custom 菜单,可随时启用、禁用内存检测。

参考来源: 【修复】A Native Collection has not been disposed, resulting in a memory文章来源地址https://www.toymoban.com/news/detail-478639.html

到了这里,关于[unity] Enable Full StackTraces 的方法,打开泄漏检查的全堆栈显示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 简单使用AndroidStudio 官方Profiler工具进行内存泄漏检查

    Android studio(下面简称AS)为App提供的性能分析工具,在AS3.0+替换掉旧的分析工具,对于其使用方法,官方也有对应的介绍:Android Profiler 对于使用方法,我只用到比较简单的功能,高级的还没用到,使用案例进行简答的使用,在此之前,你可能需要到官方文档中了解Profiler中

    2023年04月08日
    浏览(33)
  • 浏览器打开一个网页的全流程

    互联网日常生活中最为常见的行为便是在浏览器输入一个网址, 然后浏览网页内容, 这样一个简单的行为背后有哪些技术细节呢, 本文将做一些介绍. 全流程可拆分为4个主要步骤 将域名解析为IP地址 与目标主机建立TCP连接 (三次握手) 发送与接受数据 与目标主机断开TCP连接 (四

    2024年02月08日
    浏览(42)
  • 【100个 Unity实用技能】☀️ | C# 检查字典中是否存在某个Key的几种方法

    老规矩,先介绍一下 Unity 的科普小知识: Unity 是 实时3D互动内容创作和运营平台 。 包括 游戏开发 、 美术 、 建筑 、 汽车设计 、 影视 在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和

    2023年04月08日
    浏览(33)
  • unity开发Android,unity直接打开其他apk,并传参数;以及接收参数的方法

    一,获取参数 要在Unity中实现Android端打开另一个应用程序并传递参数,你可以使用Android的Intent机制。  在需要启动另一个应用程序的地方调用这个方法。例如,你可以在按钮点击事件中调用它: 二,unity c#获取参数 Unity中开发的应用程序被Android的另一个应用程序传递参数时

    2024年01月21日
    浏览(34)
  • Unity WebGL项目打包后本地打开报错问题解决方法

    在Unity打包WebGL项目后,本地打开html页面出现错误提示。 Failed to download file Build/Unity Web.data.gz. Loading web pages via a file:// URL without a web server is not supported by this browser.   在网上试了好几种方法,综合起来终于跑起来了。以下是解决步骤: 1. 打开Web服务 ,打开控制面板--程序--启

    2024年02月14日
    浏览(43)
  • Unity UI内存泄漏优化

    项目一运行,占用的内存越来越多,不会释放,导致GC越来越频繁,越来越慢,这些都是为什么呢,今天从UI方面谈起。 首先让我们来聊聊什么是内存泄漏呢? 一般来讲内存泄漏就是指我们的应用向内存申请了一块地址,然后这块地址的相关引用全部丢失了,这块内存无法再

    2024年02月12日
    浏览(34)
  • microsoft store打开加载失败,显示检查连接

        如题所示,微软商店 microsoft store打开,页面显示空白,提示检查连接,如下所示:     这种问题其实是网络设置不正确,我们通过控制面板打开 网络和Internet设置- 网络和共享中心- Internet选项:切换到“高级”tab页,把 “使用TLS1.2” 选项选中即可,如下所示:     

    2024年02月16日
    浏览(36)
  • Visual Studio打开Unity Shader就报错,标红,解决办法,VS发送请求时出错解决方法

    Visual Studio打开Unity Shader就报错,这是因为少了扩展。 点最上方的扩展-管理扩展 -联机,正常情况会看到这个界面,在搜索框输入ShaderlabVS,下载,关闭VS重启就好了。 不过有可能碰到下面这个问题,发送请求出错,有人说在网络和internet的代理里关闭代理就行,但我是打开了代

    2024年02月09日
    浏览(37)
  • 如何在 Windows 中检查打开的TCP/IP端口

    每当应用程序想要通过网络访问自己时,它都会声明一个TCP/IP端口,这意味着该端口不能被其他任何东西使用。那么,如何检查打开的端口以查看哪个应用程序已经在使用它呢? 首先,你需要在管理员模式下打开命令提示符。按 Windows + S 打开搜索框,然后在搜索框中键入

    2024年02月14日
    浏览(29)
  • STC-ISP 串口打开失败,请检查指定串口

    程序员的苦恼总是那么多种多样,昨天还好好的,今天就死活安装不上程序了。对于一个初学者,这种摸不着头脑的问题,着实浪费了我很长时间。 首先出现的下面的初级问题: 下载失败,经过地毯式每个选项查看,轻松锁定是端口选错了。扫描端口,然后选择CH340对应的端

    2024年02月11日
    浏览(29)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包