- 博客(5)
- 收藏
- 关注
原创 为什么要使用ECS(记录)
ECS架构通过数据连续存储提升性能,相比OOP的堆内存碎片化问题,ECS将组件数据紧凑排列在内存块中,显著提高CPU缓存命中率。项目采用六边形地块和屏幕坐标计算实现动态加载,利用ECS的并行处理优势。结构体组件相比类更高效,避免GC开销且兼容Burst编译器。Burst通过限制托管类型和.NET功能,将C#代码编译为高度优化的本地机器码,充分发挥硬件性能。ECS实体与GameObject分离,减少Hierarchy开销,通过System批量处理实现高效更新。
2025-11-29 18:19:12
389
原创 Unity经典常问问题
(客户端会进行“输入预测”,(视觉看到的别人),如果预测错误由服务端在短时间内进行矫正,达到消除延迟,让玩家操作感觉更加即时)但也不能太过依赖GC,要避免同一帧大量的new对象,避免内存峰值,因为mono的内存是只增不降的不会返还给系统的。GC可以通过分代机制使遍历不那么暴力,移动的都是0代里面一些细碎的对象,1代和2代的移动对象比较少,能提高效率,不需要手动释放内存,回收这个不再使用的内存,自动移动内存块,使下次分配内存可以获得足够的完整的块,不能,值类型分配在栈上,不需要GC回收,
2023-07-12 16:25:42
140
1
原创 不同父容器找相对位置坐标(量子力学)
public static Vector3 getBPosInAParentContainer(Transform transA_,Transform transB_){ return getBPosInAAsContainer(transA_.parent.transform,transB_); }private static Vector3 getBPosInAAsContainer(Transform transAContainer_,Transform transB_){
2021-05-21 14:35:48
170
原创 Drag拖拽UI方法
Drag拖拽UI方法RectTransformUtility.ScreenPointToLocalPointInRectangle(Transform父节点,Transform子节点(鼠标坐标),事件相机,out Verctor3 输出坐标)拖拽的物体.locationPositon= 输出坐标;RectTransform(子节点想要以某个父节点的中心点UGUI坐标,说白了就是你想要以谁为中心),SceenPoint(屏幕坐标,因为是2d的,所以只能是屏幕坐标,如果不是屏幕坐标怎么办,如果是场景物体
2021-05-21 14:17:33
502
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅