- 博客(98)
- 资源 (7)
- 收藏
- 关注
翻译 Optimizing graphics rendering in Unity games
Fixing Performance Problems——[[Optimizing graphics rendering in Unity games]]的翻译,介绍了渲染相关的优化
2022-02-04 23:56:02 281
翻译 [Unity脚本优化] Optimizing garbage collection in Unity games
Fixing Performance Problems——Optimizing garbage collection in Unity games的翻译,介绍了gc并说明了优化方法
2022-02-04 21:12:15 497
翻译 [Unity脚本优化] Unity magic methods
Unity的Magic methods的说明和性能测试。主要以update为例,说明了一些优化方法和性能消耗点
2022-02-04 20:49:25 420
翻译 [Unity脚本优化]Optimizing scripts in Unity games——2019以下
Unity官方文档Fixing Performance Problems第一节的翻译,讲了Unity脚本优化的一些方法,很有帮助
2022-02-04 20:41:20 343
原创 UGUI——Text和TextEffect
OnPopulateMeshPopulateWithErrorsTextGenerator用于生成用于渲染的文本,同时会缓存顶点、字符信息和行信息,以便节省内存。using UnityEngine;using System.Collections;public class ExampleClass : MonoBehaviour{ public Font font; void Start() { TextGenerationSettings
2021-02-24 15:05:01 489
原创 UGUI——ToggleGroup
我的notion笔记逻辑直接继承自UIBehaviour提供了RegisterToggle接口,Toggle组在SetToggleGroup中调用,将自身加入m_Togglespublic void RegisterToggle(Toggle toggle){ if (!m_Toggles.Contains(toggle)) m_Toggles.Add(toggle); if (!allowSwitchOff && !AnyTogglesO
2021-02-23 22:32:54 713
原创 UGUI——RectMask2D
RectMask2D会将自身注册到ClipperRegistry中,在CanvasUpdateRegistry中的cull调用,cull会计算同一canvas下所有rectmask2d相交矩形,调用原生接口EnableRectClipping设置遮罩
2021-02-23 21:34:18 221
原创 UGUI——Graphic
我的notion笔记Base class for all visual UI Component When creating visual UI components you should inherit from this class.继承自ICanvasElement,ICanvasElement接口用在CanvasUpdateRegistry类中,在PerformUpdate(canvas的willRenderCanvases)时负责对注册的该类组件进行rebuild LayoutCo
2021-02-23 19:39:45 476
原创 UGUI——LayoutGroup
在自身属性、transform尺寸或者子节点发生改变时被调用,将recttransform注册进layout的rebuild列表里,rebuild时计算所有子节点大小和layout属性
2021-02-22 20:26:47 502
原创 UGUI——CanvasUpdateRegistry
处理Graphic 和Layout的更新操作,这些组件在发生变化时将自己加到对应的队列中,队列会在执行一次后清空。并在其关联的canvas调用willRenderCanvases时触发更新。
2021-02-22 15:42:18 186
原创 UGUI——IndexedSet
按C++说明下:内部维护了一个vector和unordered_map,vector用来存储数据,unordered_map以数据为key,数据在vector的索引为值。利用unordered_map存储的数据实现对元素的随机查找和删除不允许Insert删除需要特殊处理:如果删除的是vector的最后一个元素,直接删除 否则和vector最后一个元素交换位置,修改unordered_map原本最后一个元素的数组索引,再删除最后一个元素这样做的目的是为了保证hash表里存的数组索引是正
2021-02-22 14:00:29 205
翻译 UGUI官方优化文档翻译
notion笔记地址:UGUI官方文档翻译A guide to optimizing Unity UIFundamentals of Unity UIUnity UI Profiling ToolsFill-rate, Canvases and inputOptimizing UI ControlsOther UI Optimization Techniques and TipsCopy of A guide to optimizing Unity UI
2021-02-03 14:02:47 150
原创 cocos2dx 引擎中的一些技巧
文章目录利用cache的特点进行遍历预先申明stl容器大小,避免之后push_back时的扩容,重新分配空间利用宏进行开关优先级分成3组进行排序 更新,,cocos2dx的事件、rendercommand队列都使用了特殊的random函数RAII,利用类个构造进行++,析构进行--利用cache的特点进行遍历如果是struct数组:sttuct Test{ int a; int b;};Test test[1000];for(int i=0;i<1000;++i){
2020-09-22 20:30:12 120
原创 结合源码看《我所理解的cocos2dx-3.0》—— 概述
使用《我所理解的cocos2dx-3.0》并结合源码阅读cocos2dx,能够加深对代码的理解,还能提醒自己没有注意到的地方,还能加快阅读速度。文章重点在于引擎框架的实现,并不在于新旧版本的改变。记录重点内容文章目录总览旧的渲染流程缺点举例新的渲染流程封装的数据结构引擎结构简述结构AutoreleasePool源码阅读UI树——Node节点时间线Scheduler异步处理-纹理的异步加载openGLES2.0帧缓冲新的绘制流程绘制系统概览可见性判断其他的RenderCommand类型纹理opengl的对
2020-09-22 10:00:15 543
原创 结合源码看《我所理解的cocos2dx-3.0》—— 事件系统
事件系统这个基本都是采用**观察者模式**实现的,本文记录下cocos2dx的实现逻辑。
2020-08-30 18:27:47 180
原创 结合源码看《我所理解的cocos2dx-3.0》—— 字体
介绍了FreeTrue的使用方法、几种字体特效的实现方式,最后介绍了下distance field字体
2020-08-30 18:15:02 693
原创 结合源码看《我所理解的cocos2dx-3.0》——动画系统
介绍了cocos2dx的动画系统。包括动画系统的架构、类结构、实现细节、缓动函数的实现方式、动画队列的实现方式等。
2020-08-29 19:05:13 485
翻译 Style Guide 代码风格
Style GuideThis document provides a style guide for .proto files. By following these conventions, you'll make your protocol buffer message definitions and their corresponding classes consistent and easy to read.本文档提供了.proto文件的样式指南。通过遵循这些约定,可以使协议缓冲区消息定义及其
2020-07-26 16:56:18 154
翻译 Developer Guide
Welcome to the developer documentation for protocol buffers – a language-neutral, platform-neutral, extensible way of serializing structured data for use in communications protocols, data storage, and more.欢迎使用protocol buffers的开发人员文档,这是与语言无关,与平台无关,可扩展的序列化结
2020-07-19 16:28:41 166
原创 unity dotween多个动作叠加执行
coco2dx 的动画有XXTo和XXBy两类,分别是移动和递增2种方式,后者可以实现多个动作同时叠加进行。By 算的是相对于节点对象的当前位置,To 算的是绝对位置,不考虑当前节点对象在哪。如果你想动作的表现是相对于 Node 当前位置的,就用 By,相对的想让动作的表现是按照坐标的绝对位置就用 To。dotween也有该功能的实现,DOBlendableMoveByDOBlendableMoveBy(Vector3 by, float duration, bool snapping)Tw
2020-07-02 12:35:44 5953
翻译 Language Guide (proto3) 中英对照
本指南介绍了如何使用 protocol buffer language来构造 protocol buffer data(包括.proto文件语法)以及如何从.proto文件生成数据访问类。它涵盖了rotocol buffers language的proto3版本:有关proto2语法的信息,请参见Proto2 Language Guide。
2020-06-27 16:29:35 455
原创 unity中Sprite render与纹理的mesh type
在写shader的时候遇到的问题,最终返回的值总是按图片alpha非0的部分显示。纹理设置中的MeshType只对SpriteRenderer有效。所以在UI中使用shader没有出现这个问题(按照ImageType来画Mesh)。使用Tight的话,就意味着(可能)需要额外的内存,更多的顶点数,但overdraw少了。差别不是很大,实际使用按需求来就好。
2020-06-26 12:30:51 3793
原创 unity UI shader:uv序列帧的实现——支持mask、rect mask 2d以及image的alpha
在内置shader(UI/default)基础上实现的循环序列帧效果。支持mask、rect mask 2d以及image的alpha
2020-05-30 13:25:25 949
原创 c++那些事 笔记
C++那些事文章目录const 类型作用内联函数虚函数volatile位域explicitusing枚举类引用与指针初始化列表与赋值const 类型作用修饰变量:常量(相比#define,可以节省空间,避免#define定义的常量在内存中有若干个拷贝;防止被修改;类型检查)修饰指针:不同位置作用不同,在变量前代表指针不可改变,其他位置代表指针指向的内容不可变修饰参数:不可修改参数修饰函数:函数体不可修改类对象修饰函数返回值:返回值不可变const对象默认为文件局部变量类成员const变
2020-05-29 20:19:06 265
原创 spine动作部分骨骼错位问题
项目中发现spine在循环播放和动作切换时,会出现部分骨骼错误播放的情况。看了遍官方文档,发现关于动画复位的说明,猜测与其相关。动画连续性 (pre-3.0) 这也意味着,如果没有自动复位逻辑,动画在连续播放的时候不一定和Spine中保持一致。相反,播放一个动画序列会导致之后的动画会继承之前动画的值和骨骼姿势。查看SkeletonAnimation代码,发现有个ClearState 接口,清除动画状态、mesh、重置骨骼动作等。/// <summary>/// Clears.
2020-05-28 00:26:17 1965
原创 MVC模式小记
看了一个MVC结构的UI框架,记录一下。view层,用来控制UI节点。实现上,一般会实现一个baseWindow类,实现基础的界面控制(如显示,隐藏,加载,事件注册)。每个view都继承自该baseWindow,实现自己的功能。model层,单纯的数据对象。界面和数据是完全解耦的,各自的改变都不会影响对方。Controller层,单例类,可以读写model,被view层获取,控制数据的读写。ui界面打开时添加监听,关闭时销毁监听。除了input的监听,也可以是数据变换的监听。实现windowMa
2020-05-17 23:14:01 144
原创 unity几种序列帧实现方案的性能比较
unity种有多种实现序列帧的方法,对各方法之间的性能差异比较好奇,故测试了下。这里测试了3中unity中实现序列帧的方法性能。先看结论:animation是最费的。uv性能最好。粒子系统实际使用上最灵活,支持其他功能(如控制序列帧播放次数,颜色渐变等)name animation(ms) 粒子系统(ms) 顶点动画(ms) cpu 72.4 8.4 0.5 render 0.5 0.3 0.1 PC初始状态: 使.
2020-05-13 23:45:31 2648 1
原创 关于游戏摄像机的clear flag
我们游戏是一个2D游戏,一开始摄像机的clear flags没有设置,使用的默认的天空盒之后有非全屏的界面(如漫画,不能做拉伸),露出了天空盒,将clear flags改为了soild color。在性能分析的时候发现clear color耗时有点高,故决定将cf改成dont clear,并添加一个黑色的底图作为背景以解决非全屏界面的问题。后来又发现有部分界面动画做的不仔细,在播放时会改变Z坐标,导致深度缓存发生变化,由于dont clear连深度缓存也不清了,使得界面出现异常(我们spine的
2020-05-10 21:56:18 462
原创 《我所理解的cocos2dx -3.0》笔记
第1~4章介绍了Cocos2d-x引擎的基本架构及新的绘制系统。这部分内容包括:Cocos2d-x的内存管理机制,UI树的遍历及结构,应用程序的生命周期,游戏循环的各个阶段,以及在Cocos2d-x中驱动各个子系统进行逻辑更新的机制和工作原理。这部分也介绍了Cocos2d-x3.x新的数据结构,并详细描述了新的渲染系统。总之,在这一部分,读者可以对Cocos2d-x的基本架构有比较系统的了解。...
2020-02-01 14:08:24 357
Shader Weaver v1.7.1.unitypackage.zip
2020-06-23
消灭星星增强版
2014-10-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人