Unity2019 VSCode 编辑器找不到UnityEngine.UI 引用解决方案

原因

在Unity2019.4 把UnityEngine.UI.dll 等一些常用dll改路径了
新的路径在: C:/Program Files/Unity/Editor/Data/Resources/PackageManager/ProjectTemplates/libcache/com.unity.template.universal-7.3.1/ScriptAssemblies/UnityEngine.UI.dll

解决方案

手写路径 导入

在VSCode中找到工程的Assembly-CSharp.csproj,相应位置输入如下:

<Reference Include="UnityEngine.UI">
    <HintPath>C:/Program Files/Unity/Editor/Data/Resources/PackageManager/ProjectTemplates/libcache/com.unity.template.universal-7.3.1/ScriptAssemblies/UnityEngine.UI.dll</HintPath>
</Reference>

保存即可。

关于CommandBuffer

在Unity官方文档的介绍中,SetRenderTarget可以设置渲染目标。

  1. 屏幕的渲染目标可以通过Graphics.activeColorBuffer和Graphics.activeDepthBuffer获取。

其中Graphics.activeDepthBuffer当中包括了stencilbuffer和depthbuffer。

  1. commandbuffer当中同样可以使用BuiltinRenderTextureType.Color和BuiltinRenderTextureType.depth来访问对应的渲染目标,但是BuiltinRenderTextureType.depth是不包括stencilbuffer的。
  2. 如果想要复用包含stencilbuffer的Graphics.activeDepthBuffer,是不能通过SetRenderTarget和自定义的ColorBuffer组合的,会报错。因为screen的buffer和rendertarget的buffer不能混合使用
  3. 如果只需要复用同一张depth,只需要使用BuiltinRenderTextureType.depth和自定义的colorbuffer即可。
  4. 如果需要复用同一张depth/stencil,必须要在一开始修改渲染目标为自定义的RenderTarget,例如:SetRenderTarget(selfColorBuffer, selfDepthBuffer) ,同时selfDepthBuffer的深度位数必须为24或32. 如果是16 则不支持stencilbuffer。

关于延迟渲染(deferred)渲染目标(RenderTexture)的问题

  1. 延迟渲染的RenderTarget目前没有找到方法设置。
  2. 延迟渲染的内容可以通过commandbuffer通过BuiltinRenderTextureType.Gbuffer获取出来。
  3. BuiltinRenderTextureType.Gbuffer3当中保存了整个渲染流程的结果,包括了Forwardpass。
  4. 在渲染结束后,会将BuiltinRenderTextureType.Gbuffer3当中的内容拷贝到最终渲染目标当中。
  5. SetRenderBuffers()中的多个渲染目标并不是Gbuffer,而是从shader直接输出的内容。
  6. CameraEvent.beforelighting可以看到Gbuffer3组合了无光照内容和自发光内容和全局光照,还没有环境反射,不过在AfterGbuffer时还没有自发光内容。
  7. 延迟渲染的环境反射是在完成渲染目标切换之后,才进行渲染的,比天空球还晚。(前向渲染是伴随物体光照同时计算的)

延迟渲染过程中的深度提取

  1. 如果使用BuiltinRenderTextureType.Depth无法获取到stencil纹理,在deferred当中无存在,如果使用会报错:built-in renderTexture type3 not found…
  2. deferred过程需要使用BuiltinRenderTextureType.ReolvedDepth,不过使用默认深度和自定义 深度大小很容易不匹配
  3. 在ResolvedDepth中存在完整的深度信息。在deferred第一步先计算延迟物体深度(也就是Gbuffer填充阶段),然后计算前向物体深度,当在延迟渲染中设置depthbuffer时,代替的就是ResolvedDepth。
  4. ResolvedDepth中的Stencil,延迟光照阶段最多会使用高四位,并且进入前向阶段后不会清零。
  5. 在延迟渲染阶段,前向物体深度计算时会在stencilbuffer当中以207为mask写入内容。这表示高两位和第四位是都可以用的。并且Stencil写入和深度写入在同一个阶段。

*注:当使用commandbuffer绘制一般的物体时,目前的CameraEvent都是不包含光照信息的,所以绘制出来的内容始终是黑色的。

解决小米手机无法下载GooglePlay里的APP

打开Google Play后,点下载应用,提示“应用将很快下载到您设备上”,然后等半天没装上,但Play上分明显示“已安装”。

初来乍到,没经验,碰上上面的情况,丈二和尚摸不着头脑,以为是自己的打开方式不对,连试好几遍,无果。

经过锲而不舍的搜索研究,发现这是我用的小米手机的问题,小米手机默认下载打开了迅雷引擎,而用迅雷下载不了谷歌APP。

关闭操作很简单:

1.找到“下载管理”这个应用

2.右上角菜单选择“设置”

3.关闭“使用迅雷下载引擎”

使用Robo3T连接Mongodb Atlas

1.创建Mongodb Atlas账号,并开启第一个免费集群。

2.创建具有读写数据库权限的账号,这在连接数据库时作为登录凭证。

3.创建IP地址白名单,只有在白名单中的IP才能连接数据库,如果要开放所有IP,可以填入0.0.0.0/0。

4.到此,准备工作就完成了,现在开始用Robo3T客户端来连接云数据库。首先先找到库地址:

5.一个集群由三台机器组成,因此有三个地址,可以任意连接其中一台,但只有主库可以写入,两台从库只能用来读取数据用。

6.主库地址类似:cluster0-shard-00-00-9jpsk.mongodb.net:27017,两个从库分别为: cluster0-shard-00-01-9jpsk.mongodb.net:27017 , cluster0-shard-00-02-9jpsk.mongodb.net:27017 。

7.现在把设置填入Robo3T界面中:

8.点击Test按钮看是否已连接成功。这里注意一点:Mongodb Atlas的连接必需开启SSL,否则是不会成功的。

招行的信用卡双币卡和全币卡的区别

双币卡可以在银联和国际组织渠道消费,全币卡只能在VISA消费,在国内使用不方便。全币卡永久无条件免年费,双币卡有刷卡次数限制,达标后才能免年费,但在国内使用更加方便。

双币卡和全币卡的区别:

一、合作的信用卡组织不同,双币卡是银联和一个国际信用卡组织,全币卡是单一的国际信用卡组织;

二、货币兑换费率,双币卡按照1.5%收取,全币卡免费。

三、双币卡是指同时具有人民币账户和外币账户的信用卡。一般是卡正面右上方贴有“银联” 标识,右下方贴有VISA 、JCB或万事达的标识。现在,VISA或万事达双币信用卡能够在200多个国家使用,这样的话,寻找消费商户及较为方便。

四、双币信用卡在国内刷卡消费时,采用的是人民币结算,在国外刷卡的话,会自动进入外币结算系统,根据卡片种类不同,先转换成美元或欧元,在非美元或欧元地消费,会再转换成当地货币结账,还款时还要再转换一次,转来转去,因为发生了货币转换,所以就要收取1%到2%的费用。回来还款时,还需要先进行汇兑,又会产生一次货币转换费。

五、全币种卡,出国刷卡无障碍

六、全币种的主要功能是可以免除货币转换费,并能处理所有币种的交易需求。无论是在何国何地消费,回国后均可以直接用人民币还款,免除购汇手续,此外,银行的全币种国际卡一般都会赠送高额的旅行意外险。

七、多币种卡不仅综合了单币卡和双币卡的优点,还避免了它们的缺点。而且,目前各行发行的多币种卡,都是免年费的。唯一美中不足的是,全币种卡暂时都不支持刷银联通道。

八、两者仅仅在结算的币种数量上有所差异。举个例子,双币种卡是银联+VISA 人民币+美元,那么在美国亚马逊购物,双币和全币没有任何区别