主页

资源依赖

我现在用的还是比较简单的引用计数. 主Asset有引用计数, 依赖Asset没有引用计数. 主AB和依赖AB都有引用计数. 目前没有遇到环形依赖的问题 那你这个孤岛问题没法处理了 什么孤岛问题 引用计数的特有问题 没明白,我这个方案目前主要麻烦是 不好反向排查引用计数 设计上控制不了的 它需要每个使用的地方都去做计数 那你不是先加载依赖再加载主资源的吧 跟对象池一样 如果使用的地方取了 不回池 就没办法 是一股脑无序加载的 是啊 那环形依赖的基数你全部计数加了几 我这边 应该在打包的时候就处理了环形依赖了 我的依赖是依赖AB 没有依赖资源的 给你看一下依赖清单哈 DependsAssetBundleList里面...

阅读更多

Rust使用学习记录

声明Module 如果在main.rs/lib.rs中使用mod,比如mod toys,则crate会在以下位置寻找对应的模块文件: main.rs的同级目录内寻找toys.rs。 src/toys/mod.rs,这表示toys模块的声明 如果不在上述位置使用模块,则在使用模块的文件的同级目录进行查找。 Trait作为成员对象 声明trait,参数添加&self表示调用者自身,这是为了保证trait类型安全(这样可以使trait作为一个“对象”来使用),例如这样: pub trait TState { fn on_enter(&self); fn on_update(&self); fn on_leave(&a...

阅读更多

GameDevDig

博客类: 结合JobSystem和Burst Compiler使用批量光线投射优化 Unity 中的碰撞处理 Unity 6 - Adaptive Probe Volumes 中的新光照功能和工作流程

阅读更多

CLR Via C#笔记

博客类: 4.类型基础 new操作符 CLR 要求所有对象都用 new 操作符创建。以下代码展示了如何创建一个 Employee 对象: Employee e = new Employee("ConstructorParam1"); 以下是 new 操作符所做的事情。 计算类型及其所有基类型(一直到 System.Object,虽然它没有定义自己的实例字段)中定义的所有实例字段需要的字节数。堆上每个对象都需要一些额外的成员,包括“类型对象指针”(type object pointer)和“同步块索引”(sync block index)。CLR 利用这些成员管理对象。额外成员的字节数要计入对象大小。 称为 overhead 成员,或者说“开销成员”。——译...

阅读更多

译:关于Unity增量构建和AssetBundle哈希

本篇blog介绍了Unity在做增量打包时哈希的对比依据,以及这样做的风险 原文地址在此 The BuildPipeline.BuildAssetBundles() API is widely used in currently supported versions of Unity to build AssetBundles. This post describes how the AssetBundle Hash and Incremental Build works in the context of that API, and gives some recommendations based on some known limitations. In parti...

阅读更多

转:Unity Asset一生

Unity Asset一生 选自Unity官方直播 高川 Unity Asset的一生 知乎 转载自 文章作者: Roger 文章链接: https://zeroultra.github.io/2022/04-12-2022-4-12-Unity-Asset的一生/ Scene 场景相同的物体,最好是用Prefab,这样场景的描述文件要小得多,prefab指向的都是同一个内存,占用小 Meta AssetBundle 结构 总的来说,一个AB包括2个部分:包头和数据段 包头:包含有关AssetBundle 的信息,比如标识符、压缩类型和内容清单(manifest:manifest是一个用对象名字做key的查找表),每个条目都提供一个字节...

阅读更多

资源处理方案

记录打包收集资源中遇到的一个问题。顺便整理下思路 基本逻辑: 双向无依赖资源,单独打一个AB 只被一个资源依赖的资源,比如B只被A依赖,那么A和B一起打一个AB 被多个资源依赖的资源,单独打一个AB,比如A分别被BCD依赖,那么A单独打一个AB 问题 约定:主项目目录,项目用到东西,要进包的东西,都放在该目录下,下面叫GameMain 现在只扫描了GameMain目录下的资源,换言之,如果一个资源的依赖资源不在GameMain目录下,那么它不会被扫描到,也就不会被打AB,但如果他被别的资源(GameMain目录)依赖,在构建资源时,就会把这些非GameMain目录下的资源拷贝一份到依赖他的AB里,如果有多个依赖,就构成了冗余。 解决方案办法 找出所有非GameMain...

阅读更多

八股文/面试

经验 / 应用向 Assetbunle.Unload传入true和false的区别 摄像机如何还原深度信息 UGUI动静分离,哪些部分(顶点,颜色,材质)改变会导致重绘 半透明物体的渲染顺序 shader如何优化 lua的rawget/rawset方法是干什么用的 资源打包/热更的流程 AssetBundle的组成结构 大世界地图资源处理,场景管理 红点系统怎么实现 把封装的类和对象池结合使用,与结构体相对比,哪个好 假如说有个需求,玩家要刺杀某个NPC,NPC不在AOI范围内,但是要求玩家能看到NPC,怎么做 动态图集 一个点对一个面的镜像点怎么求 一个点到直线的距离怎么求 原理 / 理论 碰撞检测和分离轴定理 LZ4压缩算法的实现 战斗模块...

阅读更多