随笔分类 -  C# & .Net

摘要:现如今Unity中的协程(Coroutine)机制已略显陈旧,随着Unitask、ETTask等异步方案的崭露头角,诸如协程异常等问题也迎刃而解 并且Unity官方也在开发一套异步方案,但对于仍使用协程的项目,依旧需要在这个方案上继续琢磨。 众所周知Unity协程中无法输出完整的栈跟踪,因为协程编译 阅读全文
posted @ 2024-05-12 14:46 HONT 阅读(180) 评论(0) 推荐(1) 编辑
摘要:年末终于有空,刀光拖尾是我很早就想回顾的一个课题,项目中多采用插件或美术部门负责,很少有机会去研究。 之前也写过一版拖尾,但效果并不好。 在游戏中刀光拖尾有2种做法,一种是直接做死,用Shader做遮罩去控制滑动效果,这种做法 通常用于非写实类项目,unity自己的3d game kit demo对 阅读全文
posted @ 2023-01-17 18:37 HONT 阅读(681) 评论(0) 推荐(4) 编辑
摘要:最近在看neuecc大佬写的一些库:https://neuecc.medium.com/,其中对await,async以及Linq查询关键字做了一些神奇的扩展, 使其可以拿来做些自定义操作,并且不需要引用System.Linq之类的对应命名空间。 关于这些功能的实现,对此进行了学习并在Unity3D 阅读全文
posted @ 2021-12-09 12:42 HONT 阅读(734) 评论(0) 推荐(2) 编辑
摘要:通常结构体不能进行链式调用,因为返回值是一个新的值,需要赋回原值。但现在通过ref关键字配合扩展方法,也能进行链式调用了。 结构体: public struct Foo { public int a; public Foo AddOne() { a++; return this; } public 阅读全文
posted @ 2021-11-09 20:11 HONT 阅读(774) 评论(0) 推荐(0) 编辑
摘要:1.ref的一些运用 1.1 ref readonly 关于ref,一个主要应用是防止结构体拷贝,若返回的结构体不需要修改则用ref readonly,类似c++的const标记 : private ref readonly Attr PlayerSetting(Player player) { r 阅读全文
posted @ 2021-10-19 21:28 HONT 阅读(335) 评论(0) 推荐(0) 编辑
摘要:可以便于调试位运算 阅读全文
posted @ 2016-12-28 00:24 HONT 阅读(4376) 评论(0) 推荐(0) 编辑
摘要:扩展阅读: 一位园友的总结: https://www.cnblogs.com/xiaohutu/p/10951911.html 斯坦福的位运算技巧大全:http://graphics.stanford.edu/~seander/bithacks.html 推荐神书《Hackers Delight》 阅读全文
posted @ 2016-12-28 00:18 HONT 阅读(258) 评论(0) 推荐(0) 编辑
摘要:在Unity中进行速度和GC Alloc的测试 测试脚本: 100万次循环下,可空类型执行速度45ms,非可空类型执行速度12ms 并且没有GC。 阅读全文
posted @ 2016-12-07 21:06 HONT 阅读(1375) 评论(0) 推荐(0) 编辑
摘要:按位取反运算符是按照二进制的每一位取反,比如byte类型,~0的结果就是255。 该功能可以在mask中做一些反转操作 如下代码,a存放了2,4,8三个值。用按位取反'~'运算符反转 打印结果是 false,flase,false,true,true。Mask已经被反转 class Program 阅读全文
posted @ 2016-09-23 20:36 HONT 阅读(29415) 评论(0) 推荐(0) 编辑
摘要:标记了Conditional特性的函数,相当于#if ....预编译指令 比如上述代码可以达到只在编辑器下可用的效果 为了测试编译,打包了一下。结果编辑器下有创建Cube,打包后的exe没有。也没有函数丢失报错 但使用要求比较苛刻,函数本身不能有返回值,且不能是重写方法等。 阅读全文
posted @ 2016-07-23 00:02 HONT 阅读(716) 评论(0) 推荐(0) 编辑
摘要:enum MyEnum { Value1, Value2, } class Program { static void Main(string[] args) { var e = new MyEnum(); string[] values = System.Enum.GetNames(e.GetType()); /... 阅读全文
posted @ 2016-07-16 23:44 HONT 阅读(5321) 评论(0) 推荐(1) 编辑
摘要:起初想用SortedDictionary做游戏中的排行榜,代码如下: 结果就是unity死循环 当你get字典中的数值时,它会调用比较器。比较器里又调用了字典,造成死循环 而且这种用法还有一个问题,可排序字典是对key进行排序,操作时内部有类似二分查找的机制。 在做排行榜时又要按名称匹配,又要自动按 阅读全文
posted @ 2016-07-03 12:48 HONT 阅读(1551) 评论(0) 推荐(0) 编辑
摘要:使用上两者的接口都类似字典,并且SortedList的比如Find,FindIndex,RemoveAll常用方法都没提供。 数据结构上二者差异比较大,SortedList查找数据极快,但添加新元素,删除元素较慢,SortedDictionary查找,添加,删除速度都比较平均。 博友的测试结果: 直 阅读全文
posted @ 2016-04-22 09:46 HONT 阅读(986) 评论(0) 推荐(0) 编辑
摘要:1.绝对路径转相对路径 绝对转相对似乎C#没有提供实现,需要自己写,这里摘选了一位博友的实现方法: string RelativePath(string absolutePath, string relativeTo) { //from - www.cnphp6.com string[] absol 阅读全文
posted @ 2016-04-20 13:47 HONT 阅读(19901) 评论(0) 推荐(0) 编辑
摘要:代码: using System; using System.Collections.Generic; using System.Xml; using System.Xml.Schema; using System.Xml.Serialization; namespace Hont { [XmlRo 阅读全文
posted @ 2016-02-17 16:22 HONT 阅读(1097) 评论(0) 推荐(0) 编辑
摘要:%1000 - 向右边位数3位取余 11001 % 1000 = 1 /1000 - 去掉右边位数的3位 11001 / 1000 = 11 需要几位数就取几个0,以此类推 阅读全文
posted @ 2016-02-16 22:25 HONT 阅读(280) 评论(0) 推荐(0) 编辑
摘要:使用.net自带的RSA,需要引用System.Security.Cryptography 测试环境.net4.6 static void Main(string[] args) { var RSA = new RSACryptoServiceProvider(); var publickKey = 阅读全文
posted @ 2016-01-29 12:40 HONT 阅读(1453) 评论(0) 推荐(0) 编辑
摘要:1.加密分类 1.1对称加密 早期的加密类型,安全性较低。大体有:DES,DES3(或者叫做3DES),AES,RC2等 DES相对时间最久,因为1977年被美国政府正式采纳,所以具体时间可以追溯到1977年以前 AES加密于1998年提出,广泛使用大概在2006年左右。比如无线路由就可用该方式加密 阅读全文
posted @ 2016-01-29 11:39 HONT 阅读(1720) 评论(0) 推荐(0) 编辑
摘要:通过调用win32 api可以直接读写ini文件写了一个助手类方便操作:using System;using System.Text;using System.Runtime.InteropServices;public static class IniFileHelper{ [DllImpo... 阅读全文
posted @ 2016-01-22 17:56 HONT 阅读(335) 评论(0) 推荐(1) 编辑
摘要:1.工具简介 1.1.关于i18n i18n其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数是“国际化”的简称。 i10n为资源本地化,全称为Localization,因为首字母I与末字母N之间共10个字母,又称为I10N。资源本地化就是要让这个软件产品 阅读全文
posted @ 2016-01-14 12:35 HONT 阅读(5099) 评论(7) 推荐(6) 编辑