自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 当生命仰望星空

Paraphrased from《朝闻道》意识到宇宙奥秘的存在时,距它最终解开这个奥秘只有一步之遥。

2024-05-15 17:45:01 318 1

原创 (C#零基础)任意类型数值转机器数(0和1), 了解大小端概念

比如说ushort 类型的3, 在小端环境中的2个Byte分别是: 第一个Byte=00000011;因为UInt16是16位,Byte是8位, 所以GetBytes方法返回值是Length为2的Byte数组。一般来说C#运行环境是小端, 小端是指当一个数值超过1Byte时, 它的高位Byte储存在内存地址高位。用GetBytes方法得到2个成员的Byte数组, 索引0的Byte=3;索引1的Byte=0;2. 首先把任意类型数值转化为Byte[]: (以ushort[即UInt16]类型为例)

2023-12-20 13:22:05 436 1

原创 C#闭包简单解释

可看到, 编译器生成了一个内部类, 把临时变量转换为成员变量, 这这就是编译器生成的"闭包". 可以猜测Func委托内部维持了对counterClosure这个变量的引用, 所以只要委托存在,这个变量就不会被回收.这段的输出结果是0/1/2. 也就是说i的值不断增加,但是我们知道, GetDelegate这个方法下的i这个值, 它是一个临时变量, 方法执行结束就应该销毁了,怎么会能增加到3?把以上代码输如SharpLab, 看看编译器拿到的版本,至于闭包陷阱, 是因为闭包原理的反常识现象, 下次再说~

2023-11-26 18:20:06 291 1

原创 Unity打包带管理员权限请求(VS2022)

这个大佬的方法完全可用。

2023-11-14 18:39:29 244

原创 并行索引器设计模式

一句话: 需要拓展一个带索引器的类的功能, 又不想更改这个类. 即可使用另一个带索引器类, 索引与之一一对应.Unity贴图系统使用了相似的思想, 三角面和贴图数组使用相同的索引.

2023-10-30 13:42:22 52 1

原创 【Unity】初级模型渲染原理: 纯代码创建一个三角面并给其贴图测试

2. 渲染遵循左手法则, 也就是顺时针提供三角面的点时, 引擎会把面向你绘制为正面. 所以上面我提供的三角面索引是0,2,1 而不能是0,1,2 (如下图, 绿色是其索引). 当然, 只要顺序是顺时针即可, 具体顺序可以随意. 比如提供2,1,0 或者 1,0,2 效果和0,2,1是一样的.[UV数组]:[顶点位置数组]成员, 所对应的(是的,索引一一对应),在贴图上的位置(比例) 比如{(0,0),(1,0),(0.5,1)}"真.原图"为: 正方形,方便后面切割, 像素不重要,因为后面是按比例切割.

2023-09-16 14:08:57 197 1

原创 【C#】yield语法糖作用和原理(迭代器IEnumerable和IEnumerator)

代码发在网盘,可以自己测一下. 里面还有IEnumerable版本(实现一个获取IEnumerator的方法就可以)和Foreach调用(自动移MoveNext+拿Current,直到没有下一个)版本。把yield return 上下文的实现放入 MoveNext()中去, MoveNext返回false代表迭代完成,没有下一个元素了.可以看到yield return 的值去了Current, 而其前后的代码分别去了 MoveNext()的上下2块代码中去.百度GPT, 免费,理解能力低于GPT4。

2023-09-09 18:19:54 158 1

原创 【Unity】协程底层机制,嵌套协程原理,WaitForSeconds等YeildInstruction原理

所以我们必须有一个类, 用来记录WaitForSeconds这种YieldInstruction被创建时的环境参数, 也就是[自己被Yeild出来的时间], 根据小道消息, 这是MonoBehaviour类的内部类, 所以写法如下. 并且给MyWaitForSeconds写一个实现类当他的儿子。对于可以迭代的,正常执行MoveNext 并获取新的Current用来更新其[协程信息封装类obj](更新方法和开协程时一样), 当然,没有下一个可迭代则结束当前协程.

2023-09-09 16:49:54 347 2

Unity协程底层机制,嵌套协程原理,WaitForSeconds等YeildInstruction原理

Unity协程底层机制,嵌套协程原理,WaitForSeconds等YeildInstruction原理

2023-09-09

Unity协程底层机制,嵌套协程原理,WaitForSeconds等YeildInstruction原理

Unity协程底层机制,嵌套协程原理,WaitForSeconds等YeildInstruction原理

2023-09-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除