之前做 Python 项目的时候,都是全局装包,后面项目多了,环境就会打架。有时候会有不可调和的矛盾,A 项目能运行、B 项目就不能。 后面知道了虚拟环境这个东西,原来可以每个项目分开来装 package,解释器版本也可以不同。 总结...
通过符号链接解决Typora的图片路径问题
我习惯使用 Typora 编辑 Markdown 文件。 在编写不同的 Markdown 文件时,插入图片的路径规则可能不同,比如编写此笔记项目时,图片文件放置在 md 文件所在目录中的 Images 文件夹中;而编写基于 Hexo ...
Unity切线空间及其应用
Object空间是每个Mesh独有的、在建模阶段就已经确定的空间;Vertex的顶点位置、法线方向等信息都记录在Object空间中。 切线空间是每个Vertex独有的、由Vertex的切线、副切线和法线分别作为XYZ坐标轴、以Ve...
Mesh顶点的连接性
盘问GPT榨出来的代码,测过了,非常好用。 输入一个Mesh,返回一个和Vertices等长的Int列表,代表Vertex属于Mesh中各分离的Parts的哪一块。 1234567891011121314151617181920212...
C# Enumerable Aggregate
之前都没注意到有这么好用的东西,这个东西的大体思路是对于一个Enumerable的对象,以列表为例,传一个任意类型的初始的随意什么东西进去,然后遍历列表中的每一对象,对这个初始的东西做累计的任意操作,遍历完后还可以进行一次转换,返回遍...
C# delegate event 和 事件系统
游戏开发中常用事件模式的设计思路;以Unity为例,借助C#的特性可以轻松地实现事件系统。 delegate 委托通俗地说,委托就是一个占坑用的方法,这个方法会在开发者指定的时刻被调用,至于方法的内容是什么,就看代码逻辑中给委托里订阅...
VSCode清理"GIT:重新打开已关闭的储存库"列表
VSCode以一个文件夹为Root创建工作区,也就是WorkSpace。 比如一个Unity项目,用VSCode打开时,就会以Unity项目文件夹为Root创建一个工作区。 有时候一个工作区内需要好几个版本管理区域,我们就会在VSCo...
在Unity C#中执行其他的程序或cmd命令行
如果能在Unity中直接使用一些外部工具有时会非常方便。 直接在Unity中执行Tortoise指令有时想看一个文件或文件夹的Git Log,我们需要先在Unity中右键单击文件,再在文件夹中找到这个文件,然后再右键单击文件,才能打开...
浅谈Unity中的级联阴影渲染
Unity URP中的阴影方案是**“SSSM(Screen Space Shadow Mapping,屏幕空间阴影映射)”**,本文将对Unity中的默认阴影方案做简单的解读。 光源有光源才能投出阴影,光源上也有一些阴影相关的配置。...