Unity Profiler学习笔记:CPU使用分析器模块
CPU Usage Profiler module CPU使用分析器模块的图表显示了在应用程序中花费的时间。它包含应用程序花费时间的所有重要领域的概述,比如渲染,它的脚本和动画[toc]。本文包括: - CPU使用图表 - CPU使用模块详细信息窗格 - Timeline视图 - 层次结构和原始层次结构视图 - 常见的样品 - 性能警告 - 分配调用堆栈 - 只有在编辑器模式下才会出现的样例 Chart categories(图表类) CPU使用分析器模块的图表跟踪应用程序主线程上花费的时间。时间花费分为九类。您可以通过在图表的图例中拖放类别来更改图表中的类别顺序。您还可以单击类别的彩色图例来切换其显示。 Rendering(渲染) 应用程序在渲染图形上花费的时间。 Scripts(脚本) 应用程序在运行脚本上花费的时间。 Physics(物理) 应用程序在物理引擎上花费的时间 Animation(动画) 您的应用程序在动画化SkinnedMeshRenderers、GameObjects上花费的时间 以及应用程序中的其他组件。这还包括用于系统动画和Animator组件的一些计算...
Unity Profiler学习笔记:监测你的应用
前言 要在目标发布平台上配置您的应用程序,请将目标设备连接到您的网络或通过电缆(emmm,应该指的是usb,typec,雷电这种吧)直接连接到您的计算机。您还可以在Unity编辑器中直接对应用程序进行分析,以便在应用程序开发期间大致分析结果。 Remote profiling(远程性能分析) 你只能在Development Build勾选的情况下才能对应用程序进行性能分析。要设置此设置,请转到Build Settings(File > Build Settings)并选择应用程序的目标平台。 您还可以选中Autoconnect Profiler,使Unity编辑器在构建过程中将其IP地址烘焙到内置播放器中。当你启动播放器时,它会尝试连接到分析器 指向位于烤好的IP地址的编辑器。 当您构建并运行应用程序时,播放器将出现在Profiler窗口的Attach to player下拉框中。“Attach to Player”下拉菜单显示所有运行在你本地网络上的Unity应用。您可以根据应用类型和运行应用的主机名(例如,iPhonePlayer (Toms iPhone))来识别这...
基于Github使用Hexo建站过程记录
前言 从WordPress刚转过来,感觉很爽,本主题基于butterfly:https://github.com/jerryc127/hexo-theme-butterfly 配置,本文记录Hexo建站过程中遇到的问题和相关解决方案。 快速入门Hexo https://www.cnblogs.com/liuxianan/p/build-blog-website-by-hexo-github.html npm Install卡住 使用代理registry 1npm config set registry https://registry.npm.taobao.org 来自OSS的图片无法显示 因为防盗链的原因,所以需要给每个md文件加上 1 详见:https://segmentfault.com/a/1190000017896469 Hexo更换电脑重新部署 https://www.jianshu.com/p/906294181814 更换博客地址 https://www.cnblogs.com/zhansu/p/9643066.html Debug 在hexo g的时候如果出错,...
2020个人年度总结
今年的时间线很简单,最主要还是因为疫情原因吧。(好吧,我本身也是个比较无聊的人,打代码,打游戏,吃饭,睡觉,但是我对这样的生活不感到枯燥,反而有种岁月静好的感觉,hh。) 简单归简单,好说歹说也发生了对我人生影响重大的一件事不是? 那么,让我带你坐上时光机器,回溯我的2020吧。 一月 这个月本来是平平无奇的,十几号放假回的家,因为疫情原因,印象中月底的时候学校就发布消息准备延迟开学了。 印象中我是1.8号开始投递的简历,第一次投简历就投的腾讯,现在想起来我是真的莽夫。 对于新冠时间线,有兴趣的可以去看网友的整理:https://zhuanlan.zhihu.com/p/107418492?from_voters_page=true。 二月 二月中再次收到推迟开学的消息,我继续到处投简历,网龙,畅游,网易雷火,网易互娱,米哈游,4399等有点名气的我都投了一遍,期间应该有一场网易雷火的面试,也是我第一次面试,但我也没有很紧张,面试官也很亲和,很愉快的一次面试经历。 然后这个月好像就没什么事情了,嗯,没错。 三月 三月的时候貌似就直接通知这学期的课程全部转线上了,有点爽,为期大半年...
为NPBehave而生的可视化编辑器介绍
介绍 什么是NPBehave?https://www.lfzxb.top/npbehave_doc/ 使用到的库 ET:一个基于C#的游戏客户端,服务端框架! Node_Editor_Framework:一个强大的可视化工具! Odin:Unity编辑器拓展神器! 编辑器截图 这是一个官方例子的可视化版本 支持导出配置文件,供客户端或者服务端读取 运行结果与官方示例一致 使用方法 1.在Unity编辑器的菜单栏,选择Tools/其他实用工具/多功能可视化编辑器即可进入编辑界面 2.然后这样可以创建一个Canvas 3.随便找个空地进行右击 4.鼠标左键点击某一个数据结点即可在Inspector面板显示其包含的数据 5.然后按照自己想要的结果把他们连接起来 6.鼠标左键点击一个空地,即可调出导出配置界面,然后即可进行导出工作。 7.最后在代码里创建自己想要的行为树,Start即可,其中的ID即为我们导出配置时上面显示的根节点ID! 12NP_RuntimeTree npRuntimeTree = NP_RuntimeTreeFactory.CreateNpRuntime...
理解并实现LOL中的攻速机制
前言 攻速机制是Moba游戏中非常重要的机制之一,他会和状态机制,Buff机制产生联系,但是网上却少有详细介绍攻速机制并实现的文章,故有此文。 名词定义 因为为了描述清楚攻速机制需要有一些专有名词,为了避免歧义,本文中的名词及其相关释义如下所示(下面提到的所有概念均为我们逻辑层概念,和动画没有任何关系) 基本攻速:也即基础攻击间隔(BAT)的倒数,即两次攻击之间的间隔时长,比如一个英雄BAT为0.5,即0.5s攻击一次,那么它的基本攻速就是2,大部分英雄基本攻速不一样 攻速收益:对于攻速加成的实际转换比例,比如一双攻速鞋+35%攻速,如果一个英雄攻速收益是50%,那么他真正获得的额外攻速就是17.5%,大部分攻速收益不一样 额外攻速:是指通过Buff,装备,技能,等级成长获得的攻速,计算公式为:额外攻速 = 额外攻速加成 * 攻速收益 总攻速:计算公式为:最终攻速 = 基本攻速 + 额外攻速 基础攻击前摇:攻击打出伤害之前的时间段,在此时间段中对攻击指令进行主动/被动取消都将终止此次攻击,并且没有伤害,大部分英雄基础攻击前摇不一样 攻击前摇:计算公式:基础...
实现行为树黑板模块0GC赋值功能
引言 因为行为树中的黑板模块可以存储任意类型的数据,并且默认是以System.Object存储的,所以我们在进行赋值的时候,难免会出现装箱的情况,偶尔的一次装箱也没什么,如果是每帧的装箱。。。不会真有人能忍吧,不会吧,不会吧,不会吧 再多说几句,目前我在使用行为树做技能编辑器,之所以可能会出现上面说的每帧的装箱的情况,是因为我打算把行为树中所有的关键数据都放到黑板中,这样有很多好处 方便状态预测/回滚 方便Debug,逐帧调试 方便满足策划的所见即所得需求 上面说的这些我会在实现之后再和大家分享,有兴趣的可以先关注我的开源Moba项目 正文 要实现黑板赋值的0GC,就是要把他的装箱那一步给去掉,所以理所当然的,我们要自己封装数据类型 基类 1234public abstract class ANP_BBValue{ public abstract Type NP_BBValueType { get; }} 12345public interface INP_BBValue<T>{ T GetValue...
Box2D篇:进阶知识整合(刚体操作,碰撞处理)
刚体操作 DestroyFixture(b2Fixture) 删除b2Fixture组件 通过b2World.Raycast和b2World.QueryAABB来获取要删除的b2Fixture组件 ApplyForce(force,point) 添加作用力到刚体上 force:要施加的力的大小,单位是N point:要施加力的点,这是一个全局坐标(世界坐标) ApplyImpulse(impulse,point) 添加冲量,单位是N*m。 ApplyTorque(Torque) Torque:扭力大小,为正表示顺时针,为负表示逆时针,单位kg*rad/s GetLoaclXXX,GetWorldXXX 用来实现本地坐标,向量和全局坐标,向量之间的转换 GetLocalCenter 获取刚体重心的本地坐标 GerWorldCenter 获取刚体重心的全局坐标 GetLoalPoint(worldPoint) 获取全局坐标点worldpoint在刚体坐标系统中的本地坐标 GetWorldPoint(localPoint) 获取本地坐标点localPoint在舞台坐标系统中的全局坐标 ...
Box2D篇:基础知识整合
初入Box2D 创建Box2D物理世界 12// Vector2为x与y方向加速度World = new World(new Vector2(0, -9.8f)); 明确换算单位 Box2D中的计量单位是米(m),而目前大部分的平台渲染都是基于像素px的,所以在进行渲染计算时,要注意对坐标或形状尺寸进行转换。通常 $$1m=30px$$ 开启2D模拟 调用World.Step(float timeStep);函数进行世界的模拟与刷新。 注意Box2D中计时单位是秒,不是帧! timeStep 每次调用刷新函数间隔,由于Box2D世界计时单位是秒,所以要进行转化。 比如你游戏想运行在60帧,即一秒刷新60次,每次耗时1/60秒,那么timeStep = 1/60; 初识刚体 什么是刚体 一个固态的物体,他至少包含看得见或者摸得着这两个特性之一。 b2Body是Box2D的核心类,是学习Box2D的基础,也是重中之重。 创建刚体 创建一个刚体,不单单是b2Body的事情,还要创建多个对象,包括b2BodyDef和b2FixtureDef对象,然后在这些对象的协同合作下,完成刚体的创建...
Box2D篇:重要注意点
本博客记载使用Box2D过程中的知识点 只有两个刚体至少有一方为dynamic时才会发生碰撞 刚体旋转以重心为圆心进行,刚体旋转带动图形旋转 如果需要运动的刚体进行碰撞,AllowSleep要为false










