当前位置: 首页 > news >正文

二手房中介网站模板wordpress屏蔽f12

二手房中介网站模板,wordpress屏蔽f12,代理注册公司注意事项,深圳博纳网站建设概述 该脚本使用 Unity Job System 和 Burst Compiler 高效管理大量剑对象的位移计算与坐标更新。通过双缓冲技术实现无锁并行计算#xff0c;适用于需要高性能批量处理Transform的场景。 核心类 SwordManager 成员变量 变量名类型说明swordPrefabGameObject剑对象预制体_d…概述 该脚本使用 Unity Job System 和 Burst Compiler 高效管理大量剑对象的位移计算与坐标更新。通过双缓冲技术实现无锁并行计算适用于需要高性能批量处理Transform的场景。 核心类 SwordManager 成员变量 变量名类型说明swordPrefabGameObject剑对象预制体_deltaPositionsNativeArrayfloat3每帧位移增量数据 (临时内存分配)_positionsBufferA/BNativeArrayfloat3双缓冲位置数据 (持久化内存分配)_swordTransformsTransformAccessArray批量访问Transform的容器_useBufferAbool双缓冲切换标志 作业系统实现 1. 位移计算作业 Vector3AddPositionsJob [BurstCompile(FloatMode FloatMode.Fast)] struct Vector3AddPositionsJob : IJobParallelFor {[ReadOnly] public NativeArrayfloat3 lastPositions; // 上一帧位置[ReadOnly] public NativeArrayfloat3 deltaPositions; // 位移增量[WriteOnly] public NativeArrayfloat3 currentPositions;// 计算结果public void Execute(int index) currentPositions[index] lastPositions[index] deltaPositions[index]; }功能并行计算每个剑的新位置优化使用BurstCompile加速数学运算FloatMode.Fast启用快速浮点模式 2. Transform更新作业 UpdateTransformsJob [BurstCompile] struct UpdateTransformsJob : IJobParallelForTransform {[ReadOnly] public NativeArrayfloat3 targetPositions;public void Execute(int index, TransformAccess transform) transform.position targetPositions[index]; }特性直接修改Unity Transform组件优势避免主线程的GameObject开销 主要方法详解 1. 初始化 Start() // 创建1000个剑对象 ListTransform transforms new ListTransform(); for (int i 0; i 1000; i) {Instantiate(swordPrefab, randomPosition); }// 初始化双缓冲 _positionsBufferA new NativeArrayfloat3(count, Allocator.Persistent); _positionsBufferB new NativeArrayfloat3(count, Allocator.Persistent);2. 每帧更新 Update() if (Input.GetKeyDown(KeyCode.Space)) {// 分配临时位移数据_deltaPositions new NativeArrayfloat3(..., Allocator.TempJob);// 调度位移计算作业var positionJob new Vector3AddPositionsJob {lastPositions _useBufferA ? bufferA : bufferB,currentPositions _useBufferA ? bufferB : bufferA};_positionJobHandle positionJob.Schedule(count, GetOptimalBatchSize());// 调度Transform更新作业var transformJob new UpdateTransformsJob {targetPositions _useBufferA ? bufferB : bufferA};_transformJobHandle transformJob.Schedule(_swordTransforms, _positionJobHandle);_useBufferA !_useBufferA; // 切换缓冲区 }3. 批次优化 GetOptimalBatchSize() int GetOptimalBatchSize() Mathf.Max(32, totalCount / (SystemInfo.processorCount * 4));算法根据CPU核心数动态调整批次目标平衡线程开销与并行效率 内存管理策略 双缓冲机制 交替读写避免数据竞争Buffer A/B 使用Allocator.Persistent 临时数据 _deltaPositions使用Allocator.TempJob在Job完成后通过Dispose()释放 销毁时清理 void OnDestroy() {JobHandle.Complete(); // 确保作业完成_swordTransforms.Dispose();_positionsBufferA/B.Dispose(); }性能优化点 Burst编译加速 数学运算编译为高效Native代码FloatMode.Fast牺牲精度换取速度 Transform批量访问 使用TransformAccessArray减少API调用开销 数据布局 结构体数据连续内存存储避免CPU缓存失效 典型工作流程 #mermaid-svg-HLGxzsBoyBM54htk {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-HLGxzsBoyBM54htk .error-icon{fill:#552222;}#mermaid-svg-HLGxzsBoyBM54htk .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-HLGxzsBoyBM54htk .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-HLGxzsBoyBM54htk .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-HLGxzsBoyBM54htk .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-HLGxzsBoyBM54htk .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-HLGxzsBoyBM54htk .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-HLGxzsBoyBM54htk .marker{fill:#333333;stroke:#333333;}#mermaid-svg-HLGxzsBoyBM54htk .marker.cross{stroke:#333333;}#mermaid-svg-HLGxzsBoyBM54htk svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-HLGxzsBoyBM54htk .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-HLGxzsBoyBM54htk text.actortspan{fill:black;stroke:none;}#mermaid-svg-HLGxzsBoyBM54htk .actor-line{stroke:grey;}#mermaid-svg-HLGxzsBoyBM54htk .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-HLGxzsBoyBM54htk .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-HLGxzsBoyBM54htk #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-HLGxzsBoyBM54htk .sequenceNumber{fill:white;}#mermaid-svg-HLGxzsBoyBM54htk #sequencenumber{fill:#333;}#mermaid-svg-HLGxzsBoyBM54htk #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-HLGxzsBoyBM54htk .messageText{fill:#333;stroke:#333;}#mermaid-svg-HLGxzsBoyBM54htk .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-HLGxzsBoyBM54htk .labelText,#mermaid-svg-HLGxzsBoyBM54htk .labelTexttspan{fill:black;stroke:none;}#mermaid-svg-HLGxzsBoyBM54htk .loopText,#mermaid-svg-HLGxzsBoyBM54htk .loopTexttspan{fill:black;stroke:none;}#mermaid-svg-HLGxzsBoyBM54htk .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-HLGxzsBoyBM54htk .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-HLGxzsBoyBM54htk .noteText,#mermaid-svg-HLGxzsBoyBM54htk .noteTexttspan{fill:black;stroke:none;}#mermaid-svg-HLGxzsBoyBM54htk .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-HLGxzsBoyBM54htk .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-HLGxzsBoyBM54htk .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-HLGxzsBoyBM54htk .actorPopupMenu{position:absolute;}#mermaid-svg-HLGxzsBoyBM54htk .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-HLGxzsBoyBM54htk .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-HLGxzsBoyBM54htk .actor-man circle,#mermaid-svg-HLGxzsBoyBM54htk line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-HLGxzsBoyBM54htk :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} MainThread positionJob WorkerThread transformJob 调度位移计算 完成计算 调度Transform更新 完成所有更新 MainThread positionJob WorkerThread transformJob 注意事项 线程安全 确保Job完成前不修改NativeArray数据使用JobHandle.Complete()同步 内存泄漏防范 严格匹配Allocator与Dispose()在OnDestroy中释放持久化内存 移动端适配 测试不同处理器核心数的批次表现调整GetOptimalBatchSize除数因子 Burst兼容性 避免在Job中使用非Burst兼容代码注意Managed类型的使用限制
http://www.hkea.cn/news/14594425/

相关文章:

  • 常见的域名注册网站溧阳网站设计
  • 福建省效能建设网站前端培训学校
  • 网站建设的意义和作用企业网盘哪个最好用
  • vps 上传网站广告传媒公司名字
  • 大连建设工程信息网下载中心酒泉网站建设优化
  • 做网站业务的怎么寻找客户网站开发适配
  • 网站建设平台软件企业vi设计图片
  • 武功网站开发php网站开发设计论文
  • 电商网站详细设计网站建设 制作教程
  • 地方网站的建设北京工程信息网
  • 做外贸最好的网站有哪些深圳网站设计x
  • 旅游酒店网站建设域名一定要备案吗
  • 网站开发管理制度wordpress百度xml地图
  • 网站每年续费费用个人简历免费制作网站
  • 网站建设为什么要全款如何做好网站建设的要点
  • 网站建设公司小江龙岩天宫山天气预报
  • 做美工要开通什么网站的会员呢女性logo大全图片
  • 钓鱼网站的危害梅县区住房和城市建设局网站
  • 网站域名过期2022最近比较火的热点话题
  • hugo 怎么做网站网站设计中国内优秀企业网站欣赏
  • 个人网站优秀作品横沥镇网站仿做
  • 湖南3合1网站建设价格抖音代运营是怎么回事
  • 专业的公司网站建设产品单页设计图片
  • 百度搜索引擎的网址是北京seo技术
  • 做网站有名的公司有哪些ui设计属于视觉传达吗
  • 学做网站论坛好吗wordpress悬赏
  • 快速提高网站权重i营销
  • 中山建设公司网站象58同城网站建设需要多少钱
  • 网站分级怎么做廊坊网站建设公司费用
  • 做任务网站有哪些好用的推广平台