1 //父子节点相关的: 2 parent 变量表示Transform的父节点 3 root 表示它的根节点,如果没有父节点,它会返回自己 4 //根据名字查找子节点 5 Transform Find(string name) 6 //判断该Transform是否某Transform的子节点 7 bool IsChildOf(Transform node) 8 //
内存是游戏中比较重要的一项,如果没有做好内存的管理,游戏可能会出现卡顿甚至闪退的现象。Unity中的内存开销大致可以分为三类:1.资源内存占用  2.引擎自身内存占用  3.托管堆内存占用其中资源内存占用可参考上篇Unity优化相关总结(资源),引擎自身内存占用了解不是很深,还需要进一步学习,今天主要来说一下托管堆内存。一.托管堆内存(Mono内存)基于Unity开发而言,托管
 前言toLua Framework是一款开源的Unity+toLua热更新框架,越来越多的游戏项目将其应用于热更新开发,但这样会形成了Lua+Mono双GC系统,而有的开发人员优化时往往只针对Mono层的优化而忽略Lua层的性能问题,或者没有类似于Unity Profiler这样高效直观的优化工具,又或者认为Lua拥有类似于C#的垃圾自动回收机制而不必优化。其实,Lua使用不规范也会造
转载 2024-05-29 11:32:20
284阅读
此文为搬运帖,原帖地址前言 在看了uwa之前发布的《Unity项目常见Lua解决方案性能比较》,决定动手写一篇关于lua+unity方案的性能优化文。 整合lua是目前最强大的unity热更新方案,毕竟这是唯一可以支持ios热更新的办法。然而作为一个重度ulua用户,我们踩过了很多的坑才将ulua上升到一个可以在项目中大规模使用的状态。事实上即使到现在lua+unity的方案仍不能轻易的说可以肆意
转载 2024-04-24 19:48:09
97阅读
这两天剖析了一下socket.lua,整体不是很难,主要是数据缓冲区的实现需要好好分析一下。这里读写数据也是用到了缓冲池的思想,为了更加直观的说明代码,还有方便测试,我去掉lua代码,把核心接口直接用C++实现了一遍:#include <stdio.h> #include <string.h> #include <vector> using std::vecto
转载 2024-02-27 14:59:34
183阅读
Monos就像是一个神奇的酱汁,,混合成Unity平台这个食谱,并且赋予了它跨平台的能力。 Mono是一个开源的项目,基于API(应用程序编程接口),说明书和来自微软.NET框架的通用库工具建立起了它自己(Mono)的框架和库.但是却几乎不能对源代码进行访问。注意,尽管Mono库建立在开源的微软娱乐基础NET类库上,但是它(Mono)完全的兼容了基础的微软库。Mono项目的目标是提供使用NET框架
转载 2024-04-15 11:02:03
36阅读
最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化.Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大。 Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需
转载 2024-05-23 22:26:01
8阅读
关于内存泄露: 客户的一台AP server,内存使用量一直很大,swap使用量从三月份开始在慢慢增多。怀疑与内存泄露有关,查找了一些资料,发现对于linux真个系统的内存泄露检测工具很少。有如下几个,但是都只针对单个程序。如果测试真个内存的情况,特别是历史记录,不知道还有没有好的工具。 Valgrind 用C/C++开发其中最令人头疼的一个问题就是内存管理,有时候为了查找一个内存泄漏或者一个内
转载 10月前
14阅读
 现在用unity做项目 90%都是用NGUI,并且我个人觉得NGUI应该算是比较成熟的UI插件,虽然他也存在很多问题,但是至少这么多游戏都在用,它目前是能hold住的,嘿嘿。 这篇文章说说我现在是怎么自适应UI 和 3D 游戏的。。1.获取屏幕的宽高Screen.width  Screen.height 可以回去设备屏幕的宽高,但是它并不是NGUI的宽高。比如你想做一个全屏的
Lua内存是自动收集的, 这点跟Java类似, 不被任何对象或全局变量引用的数据,将被首先标记为回收,不需要开发者做任何事情.但是,正如Java也会有内存泄露一样, Lua也会有, 只不过,跟C++的不同,它是由于代码执行所装载的资源,并没有被彻底销毁而导致,其中,最臭名昭著的就是不小心把局部变量声明成了全局变量(忘了加local修饰符)。 类似这样造成的
转载 2024-03-24 15:11:44
253阅读
内存内存消耗是一个关键的性能指标,尤其是在内存资源有限的平台上,比如低端移动设备。内存消耗分析:在Unity中诊断内存问题,Unity介绍了一款开元的可视化内存分析工具——MemoryProfiler,地址:https://bitbucket.org/Unity-Technologies/memoryprofiler这个工具兼容了Unity高于5.3的所有版本。在对用IL2CPP编译出来的游戏进
这个人也是小白,不对的地方请指出他好更改。1.热更新是干什么用的?        我们拿Android手机的APP为例,假如一个一二十M的APP更新了版本,一般是叫用户重新下载一个最新版本的APK文件重新安装。                    &nbsp
概述本文会介绍lua每一个类型的用法,以及其类型在底层的实现,并通过测试来验证内存占用大小。对于使用者来说,了解不同的类型在底层具体的实现,并不是必须的,但是一个加分项。了解之后,也更有助于对lua这门语言的深入理解。*本文文章采用的源码是 lua-5.3.4 版本。Lua内存管理方式lua为一个动态的、对内存进行自动管理的语言。lua内存进行管理的关键字叫“gc”(garbage coll
转载 2024-04-13 11:44:22
188阅读
Unity3D:血条制作1:要求2:使用IMGUI实现:3:使用UGUI实现3.1设置3.2 脚本1:LookAtCamera.cs2:SliderController.cs4:两种实现的优缺点:1:IMGUI2:UGUI5:预制使用:6:视频演示:6.1:IMGUI:6.2 UGUI:7:项目仓库 1:要求分别使用 IMGUI 和 UGUI 实现使用 UGUI,血条是游戏对象的一个子元素,任何
转载 2024-04-14 15:39:57
47阅读
一、背景:测试发现程序的内存占用(qnx中是hogs的memery, linux中是htop中的RES)上升到比较高的位置之后,就不会再往下有大的降低。因此网上查阅资料top中VIRT和RES的含义: VIRT: 虚拟内存,它是一个假象的内存空间,在程序运行过程中虚拟内存空间中需要被访问的部分会被映射到物理内存空间中。虚拟内存空间大只能表示程序运行过程中可访问的空间比较大,不代表物
序言要结束cocos的开发转unity了(本来标题是要写这个的,写着写着就写多了) unity对我们来说是个新的挑战cocos的方案连更新的逻辑都能更新,全部逻辑用lua编写unitylua方案似乎效率很一般,好多人都是提议通过c#写代码,然后lua只是配置目前unitylua社区都还比较小,使用人数不多,遇到问题很多都要自己解决分析目前就看了uLua和xLuaulua ulua是比较早而
转载 2024-05-09 14:45:12
27阅读
Unity中调用LUA: 优先导入tolua资源包,只能是5.6.5以上版本。 LuaState lua = new LuaState() 定义并创建一个LUA脚本的虚拟机 LuaState.Start() 开启虚拟机 LuaState.AddSearchPath(string) 传入一个路径添加路径下的LUA脚本但不执行,调用DoFile或Reqire后直接传入脚本名.lua执行(二者有别) L
内存泄露内存泄露是开发人员在项目研发过程中最常见也最不愿遇到的问题。就目前来看,大家对于判断项目是否存在内存泄露仍然存在一些误区:误区一我的项目进出场景前后内存回落不一致,比如进入场景后,内存增加40MB,出来后下降30MB,仍有10MB内存没有返回给系统,即说明内存存在泄露情况。误区二我的项目在进出场景前后,Unity Profiler中内存回落正常,但Android的PSS数值并没有完全回落(
此部分分为以下几个环节来记录Mono平台本地和托管内存域垃圾回收内存碎片IL2CPP如何分析内存问题不同内存祥光性能增强最小化垃圾回收正确使用值类型和引用类型正确使用字符串与unity引擎相关的许多潜在增强对象和预制池Mono平台Mono是一种神奇的调味汁,使Unity具有很多跨平台的功能,其目标使通过框架提供跨平台开发,该框架允许用统用的编程语言编写代码运行在不同的硬件平台上,包括 Linux、
1.起因游戏上线之前大约不到一周的时间,安卓和iOS包都提给渠道之后,合作方的质检部门给出了一个测试报告,说我们游戏有严重的内存泄露……我裤子都……呃,不好意思,我包都提上去了,这个时间点你跟我说这个,早干嘛去了!而且内存部分也一直是我们关注的内容,不管是我们内部的周常测试还是定期的UWA的性能测试,在内存这块都没有发现特别明显的问题。2. 初步处理先初步沟通了下,内存泄露的结论是在做频繁开关ui
  • 1
  • 2
  • 3
  • 4
  • 5