![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity
zwlstc
what I can not create , what I do not understand
展开
-
谁在关联prefab的属性?
本质上.prefab预制体和.unity场景 就是一种序列化后的文件 (序列化就是把内存中的对象保存进文件或者流,可以是人看得懂的格式比如xml,也可以是人看不懂的二进制格式)一个被拖进场景的物体在inspector中看到的属性 皆是由Unity通过正反序列化更新(本身也是)如果对'蓝色物体'进行修改但是没有点过apply 那这些修改过的属性就由场景负责正反序列化 (transform不修...原创 2018-12-04 11:23:00 · 167 阅读 · 0 评论 -
浅谈Batch SetPass 以及 Shader Material Texture的关系
简单总结一下这些东西和opengl对应概念之间的关系。首先unity 将glDrawElements这样的调用 称作一次Batch(以前叫Drawcall),将对于GPU来说比较昂贵的操作称作 SetPass昂贵的操作是指哪些呢? 更换Shader 以及 更换Texture还有一个不太确定,就是传递Uniform变量,猜想所谓的MateiralInstance(比如脚本中获取...原创 2019-01-19 11:47:24 · 685 阅读 · 0 评论 -
Pbr和一般光照模型的区别
pbr (physically based rendering) ,基于物理的渲染。首先明确一点,物体有颜色是因为那些没有被物体吸收的光线(表现为物体的颜色)射入你的眼睛,你才感知到了颜色。从光照模型的角度来说,射入你眼睛的有两种光,一种是直接的反射光(表现为光本来的颜色),一种是折射进入物体后又散射出来的所谓漫反射光(即被吸收过了的光,也就是贴图的颜色)pbr和原始的blinn-phon...原创 2019-01-24 08:56:33 · 6391 阅读 · 0 评论 -
什么是ECS + Job
单纯的ECS其实对性能提升并不大,那为什么Unity要推ECS,而且1年后铁定抛弃原来的Mono架构?(并不是完全抛弃,UI上任然会使用原来那一套)因为ECS天生的多线程友好。搭配上Unity的JobSystem,轻松占满100%的Cpu,让cpu全速工作(在多核年代,占满CPU意味着牛逼)。如果到时候你还不会ECS+Job,只能干瞪眼。好了,接下来要说明的是 ECS 是什么 以及为什么对...原创 2019-01-12 13:27:48 · 505 阅读 · 1 评论 -
协程VS多线程 应用场景比对
众所周知 ,多线程除了会给cpu带来切换上下文的开销,还会产生资源竞争,想要用多线程,免不了这里那里加个锁。所以多线程在有些时候并不讨巧。所以,协程出现了,他也可以并发的执行多线逻辑,但完全不会给cpu带来额外负担,且不存在任何资源竞争。看起来,协程可以完美替代多线程了。但其实,协程也只是在特定应用情境下才适用。使用多线程的目的之一是为了不阻塞主线程的迭代循环,让主线程可以顺畅...原创 2019-01-07 10:44:35 · 2429 阅读 · 0 评论 -
UnityEditor.AssetDatabase.LoadAssetAtPath()的坑
这个api可以在编辑器play状态下加载资源(重要的事情说一遍就行了)填写的路径一定要以Assets开头 这是个坑。另外有时候会用FileStream打开文件,这时候的路径要用Application.dataPath这个开头相当于xxxxxxxx/Assets别搞混了...原创 2018-12-03 17:38:37 · 16683 阅读 · 6 评论 -
Unity--- 简单模仿一下原生协程的实现
先来看下测试代码 ... void Start() { CoroutineManager.Manager.StartCorouine(testWaitTime(1)); CoroutineManager.Manager.StartCorouine(testWaitTime(2)); //CoroutineManager.Manager....原创 2018-12-12 16:41:25 · 680 阅读 · 0 评论 -
UnityAction 、UnityEvent、 EventTrigger
UnityAction是 void的带一个参数的委托UnityEvent是对UnityAction的封装 Addlistener相当于+= Remove相当于-=EventTrigger是一个实现了所有点击拖拽等等接口的组件添加了他就等于实现了所有接口。但是他的回调注册机制很奇怪,此类的内部有一个Entry的listEntry是一个struct,保存两个东西,一个是事件类...原创 2018-12-05 00:22:29 · 1588 阅读 · 0 评论 -
自动打AssetBundle包的基本思路
思路就是 先变着法的给每个资源都打上包名标记(自动之处),然后调用api ...没了..在调用api进行打包时,unity会自己查找依赖关系,不会重复打已经打过的资源(并且是增量打包)我们知道资源之间是有依赖关系的,比如模型依赖材质,材质依赖图片、shader等等(资源间的依赖,可以调用api查看)比如资源A上了包名标记P1 而他依赖的资源B上了包名标记P2这时候包P1就依赖了包...原创 2018-12-04 17:38:37 · 177 阅读 · 1 评论 -
Gamma矫正,先有鸡还是先有蛋的故事
先上图 此图出于LearnOpenGl CN。原文可能由于翻译的关系,导致内容其实并不好理解。翻阅了不少资料后(其实就是冯乐乐老师的入门精要,逃...),想对gamma矫正做一个简单的总结。先剖析一下这张图的含义(此图其实不是重点)。首先,横轴代表,给计算机提供的颜色的物理强度rgb(图片上储存的信息或是shader的输出),纵轴是计算机实际会为这个值提供多少物理强度中间直的小点虚...原创 2019-01-21 10:52:22 · 558 阅读 · 0 评论