1.起因游戏上线之前大约不到一周的时间,安卓和iOS包都提给渠道之后,合作方的质检部门给出了一个测试报告,说我们游戏有严重的内存泄露……我裤子都……呃,不好意思,我包都提上去了,这个时间点你跟我说这个,早干嘛去了!而且内存部分也一直是我们关注的内容,不管是我们内部的周常测试还是定期的UWA的性能测试,在内存这块都没有发现特别明显的问题。2. 初步处理先初步沟通了下,内存泄露的结论是在做频繁开关ui            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-20 13:51:35
                            
                                234阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言虽然现在华佗已经横空出世,但是毕竟现在还问世不久。现在市面上的热更新主流方案依旧是Lua,而且也不清楚华佗未来是否真正能成为真正的主流方案,所以即使lua用起来在恶心还是依旧得去用。Lua方案常见的为XLua和ToLua,这里选用XLua进行测试,简单实现下面几个部分:1.采用代理模式实现Lua脚本在物体上的热加载2.实现lua中的面对对象,也就是封装继承多态3.AB包加载使用4.完成一个lu            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-13 11:31:57
                            
                                47阅读
                            
                                                                             
                 
                
                             
         
            
            
            
             求是任何逻辑都可以被热更,也可以完全的新增任何功能。其中消息用的是protobuf。 因为google 的protobuf c# 版本需要先对消息进行序列化好,然后作为c#            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2020-02-27 01:18:00
                            
                                638阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            目录为什么会导致内存溢出?Unity内存管理系统堆栈内存和堆内存什么是托管堆?内存申请的原理造成内存溢出的原因解决内存溢出的方案 目录为什么会导致内存溢出?导致内存溢出的原因很简单,就是因为我们在大量的使用内存,而由于系统(OS)各种限制原因,我们可以申请使用的内存已达上限,没有多余的内存空间进行申请使用,但是我们仍在无节制的使用内存,最后就导致我们使用的内存已经超过了可使用的内存上限。从而就造成            
                
         
            
            
            
            序言要结束cocos的开发转unity了(本来标题是要写这个的,写着写着就写多了)  unity对我们来说是个新的挑战cocos的方案连更新的逻辑都能更新,全部逻辑用lua编写unity的lua方案似乎效率很一般,好多人都是提议通过c#写代码,然后lua只是配置目前unity的lua社区都还比较小,使用人数不多,遇到问题很多都要自己解决分析目前就看了uLua和xLuaulua  ulua是比较早而            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-09 14:45:12
                            
                                27阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            定义   简单来说,内存泄漏就是程序在申请一个内存空间后没有释放,直到程序运行结束后才释放。这样看起来似乎没什么大问题,但是如果程序会持续运行很长时间(例如服务器),并且可能在程每次调用某个部分的时候都会申请一个内存空间,那么长久以来的后果是可想而知的:当程序希望再次申请一块空间时,发现已经没有free的部分了,最终导致系统崩溃。情况   内存泄漏可能发生在如下几种条件下:   1. 类的构造和析            
                
         
            
            
            
            什么是冷更新 开发者将测试好的代码,发布到应用商店的审核平台,平台方会进行稳定性及性能 测试。测试成功后,用户即可在AppStore看到应用的更新信息,用户点击应用更 新后,需要先关闭应用,再进行更新。 什么是热更新 广义:无需关闭应用,不停机状态下修复漏洞,更新资源等,重点是更新逻辑代码。 狭义定 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-04 17:58:00
                            
                                1107阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1、框架简介这两天在Github上发现了xlua的作者车雄生前辈开源的一个框架—XUUI,于是下载下来学习了一下。XUUI基于xlua,又借鉴了mvvm的设计概念。xlua是目前很火的unity热更方案,不仅支持纯lua脚本热更,也可以做 C# 代码的bug hotfix,而mvvm框架呢,在前端开发中应用很广,我周围同事在做wpf开发时也用到了mvvm框架,mvvm模式在unity开发中也同样适            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-27 17:59:44
                            
                                222阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一  这是什么东西  前阵子刚刚集成xlua到项目,目的只有一个:对线上游戏C#逻辑有Bug的地方执行修复,通过考察xlua和tolua,最终选择了xlua,很大部分原因是因为项目已经到了后期,线上版本迭代了好几次,所以引入Lua的目的不是为了开发新版本模块。xlua在我们的这种情况下很是适用,如xlua作者所说,用C#开发,用lua热更,xlua这套框架为我们提供了诸多便利,至少我可以说,在面临            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-07 15:55:23
                            
                                69阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            作为辅助单位,SoundManager和Loader在游戏中也起到了很重要的作用。由于这两样东西本身比较简单,因此在这一篇文章中将一起讲解。 先说SoundManager:  SoundManager和GameManager一样,在同一时间只需要一个,因此也要设定为单例模式。因此在Awake方法中和GameManager基本一样。  可以注意到,在            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-05 22:58:18
                            
                                50阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            xLua的GitHub地址: https://github.com/Tencent/xLua/ 1. xlua目录结构: 2. 先将XLua和Plugins文件夹拷贝到Unity工程Assets路径下 3. 将Tools文件夹拷贝到Unity工程Assets同级路径下 4. 设置Build Sett ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-11-02 17:49:00
                            
                                905阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            1 //父子节点相关的:
  2 parent 变量表示Transform的父节点
  3 root 表示它的根节点,如果没有父节点,它会返回自己
  4 //根据名字查找子节点
  5 Transform Find(string name) 
  6 //判断该Transform是否某Transform的子节点
  7 bool IsChildOf(Transform node) 
  8 //            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-20 07:45:46
                            
                                130阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            CL反应时间是衡定内存的另一个标志。CL是CAS Latency的缩写,指的是内存存取数据所需的延迟时间,简单的说,就是内存接到CPU的指令后的反应速度。一般的参数值是2和3两种。数字越小,代表反应所需的时间越短。在早期的PC133内存标准中,这个数值规定为3,而在Intel重新制订的新规范中,强制要求CL的反应时间必须为2,这样在一定程度上,对于内存厂商的芯片及PCB的组装工艺要求相对较高            
                
         
            
            
            
            内存泄露内存泄露是开发人员在项目研发过程中最常见也最不愿遇到的问题。就目前来看,大家对于判断项目是否存在内存泄露仍然存在一些误区:误区一我的项目进出场景前后内存回落不一致,比如进入场景后,内存增加40MB,出来后下降30MB,仍有10MB内存没有返回给系统,即说明内存存在泄露情况。误区二我的项目在进出场景前后,Unity Profiler中内存回落正常,但Android的PSS数值并没有完全回落(            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-15 11:24:27
                            
                                54阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            内存是游戏中比较重要的一项,如果没有做好内存的管理,游戏可能会出现卡顿甚至闪退的现象。Unity中的内存开销大致可以分为三类:1.资源内存占用  2.引擎自身内存占用  3.托管堆内存占用其中资源内存占用可参考上篇Unity优化相关总结(资源),引擎自身内存占用了解不是很深,还需要进一步学习,今天主要来说一下托管堆内存。一.托管堆内存(Mono内存)基于Unity开发而言,托管            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-09 08:10:36
                            
                                149阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            使用版本:Unity3D2019,
网络协议:Socket.TCP以后的项目想使用热更,目前Unity3D比较好的热更框架为xLua,为此准备开始搞套xLua热更框架。首先是到官网下载,打开后子文件按照README.md操作,将Assest拷贝复制项目中的Unity3D同级文件夹下。随便建个脚本,在Start()中写下:void Start()
    {
        XLua.LuaEnv            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-08 10:33:00
                            
                                241阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1. XLua是什么?  Xlua是Lua在C#环境(.net)下的Lua解决方案,包括C#环境下的Lua代码解释器(Lua虚拟机)。2. 基于XLua的纯Lua开发环境的基本原则? Unity场景里不放任务物体,通过代码创建和释放物体。这样避免冲突,方便维护(比如程序和美术都往场景里放了同一物体),可以通过搜索代码查看创建了哪些物体以及结构关系。运行时只有一个场景,没有场景切换。地图、            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-27 17:41:35
                            
                                83阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Aladdin_XLua前言前段时间腾讯开源了一个内部热更框架XLua在Unity开发群里引起一阵热议,也受到广大开发者的热捧,然后我当然            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-04-27 14:15:29
                            
                                528阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            背景自己在工作中,遇到过一次double free的问题,在申请了一段堆内存之后,经过复杂的业务逻辑,有两个指针指向了同一块内存,当我对两个指针都调用free方法的时候,错误就发生了,我把这个错误进行了简化,并把代码放在下面:#include <stdio.h>
#include <stdlib.h>
int main()
{
    int* p=(int*)mallo            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-24 10:38:05
                            
                                85阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            unity如何通过VRTK模拟VR环境如何在没有HTC VIVE的前提下使用VR?由于作者研究室课题是基于虚拟现实的人机交互,需要用到VR下的场景,但由于实验室设备只有一套,而当我们想要随时随地进行测试效果时,就不太方便,在自己的电脑上安装一个模拟器可以随时测试VR效果,大大节省了时间。 以下就是安装步骤,很简单,请和我有同样需求的小伙伴耐心观看。一、主要内容首先我们需要导入两个包,steam V            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-26 20:17:04
                            
                                37阅读
                            
                                                                             
                 
                
                                
                    