C#
文章平均质量分 66
xdedzl
心有猛虎,细嗅蔷薇
展开
-
unity控制台 -- 动态编译c#
在游戏开发过程中,调试是一件很让人头痛的事情,使用unity和c#开发的时候,总是会打开游戏----->发现有问题----->关游戏----->加log----->加测试代码----->开游戏----->测试,看log。或者打断点,在IDE里调试代码。又或者是有一个GM系统可以执行各种已经写好的指令,总之,很麻烦就是了,且没有时效性。 使用脚本语言开发的时候,可以直接在控制台中输入一行代码,就可以查看数据,或者执行一个命令,于是就想,能不能用c#实现类似的功能呢.原创 2021-07-28 22:21:37 · 1220 阅读 · 0 评论 -
解决用 c# System.Diagnostics.Process 启动python脚本控制台会自动关闭的问题
static void Main(string[] args) { var p = new System.Diagnostics.Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.Arguments = "/k" + @"python E:\Projects\XDEDZL\ExcelExport\export.py --Model 1dasdas";原创 2020-12-04 19:41:06 · 680 阅读 · 0 评论 -
C# 反射性能优化
之前在做消息的自动注册机时,发现用反射获到的MethodInfo也是可以转成委托的,于是抽空整理了一下,写了一些用于优化反射的工具类和方法。原创 2020-11-03 20:27:10 · 2317 阅读 · 3 评论 -
根据抛物线起点终点及初速度大小推算初速度方向
List itemList item原创 2020-10-25 20:30:22 · 1422 阅读 · 0 评论 -
C#工程批量添加dll和脚本
出于想在没有unity的环境下用unity的dll来写代码的目的(嗯,很sb的需求),自己建了个空的c#工程,再把动态库和代码放到工程目录下,用python脚本给工程文件批量添加dll和cs文件。1.分析 首先得知道在用Visual Studio给解决方案添加引用的dll和代码文件时都发生了什么。打开解决方案文件(.csproj)基本结构如下,可以看到其实就是个xml文件。看到最后会发现有两个ItemGroup节点,一个描述了项目所引用的dll,一个描述了项目所有的代码文件。所以,只需要写个工具修.原创 2020-09-24 19:53:47 · 572 阅读 · 0 评论 -
【c#消息机制】自动注册和反注册
随着项目代码量的增长,原创 2020-09-19 19:54:20 · 1321 阅读 · 1 评论 -
c#使用 Newtonsoft.Json 实现多态序列化
有时候会碰到以下情况 1.定义了一个类型为A的字段,但在实例化时使用的是它的派生类B。 2.定义了一个存储基类型A的集合,但实际上里面包含了各种各样的派生类。 上述两种情况在序列化的时候没有问题,但在反序列化的时候程序并不能将其转化为成派生类。 Newtonsoft.Json提供了一个JsonConverter特性,我们可以自定义某个数据的json读写方式以达成多态序列化的目的。...原创 2019-12-03 10:32:16 · 2749 阅读 · 3 评论 -
c#为枚举添加描述
在做UI时,下拉框往往会和某一枚举类型对应,如果我们想在代码中对下拉框的选项进行添加,并且不想每次修改枚举时都要修改下拉框的对应代码。就可以使用下面的特性来解决。Description特性namespace XFramework{ /// <summary> /// 为枚举提供自定义字符串 /// </summary> [Attri...原创 2019-09-27 09:18:25 · 632 阅读 · 0 评论 -
c# 快速二进制序列化
不知看到这篇文章的人,是否也曾饱受c#常见的序列化方式之苦,在数据量较小的情况下,效率上没有什么问题,一旦数据量过大,速度上简直惨不忍睹。在数据量特别大的情况下(之前需要快速保存上百兆的数据,当然,一般可能不会有如此大),文章最后提供的二进制序列化方式会比1,2快几十倍,比3快几倍。1.object序列化 这是一种比较常见的类序列化方式,只要定义的类以及其包含的所...原创 2019-03-31 21:24:30 · 4041 阅读 · 0 评论 -
CSV文件读取
csv文件很适合于程序和策划之间的配合,csv文件可以直接由Excel导出,策划在Excel中更改后导出csv,程序可以在不做任何修改的情况下做到更改游戏内容。1.注意点这个简单的文件读取类需要传入一个string初始化,可以直接用File.ReadAllText(文件路径),获取,如果是在Unity中并且放在Resources文件夹下的话,打包后这个文件夹就没了,直接传入文件路径无法获取...原创 2019-03-11 19:31:24 · 1922 阅读 · 0 评论 -
利用反射将MySQL数据表数据转化为对应的类
首先建立两个类MySqlOpr负责封装数据库增删改查等基本操作MySqlMgr负责数据库管理1.数据库连接和查找操作这两个操作写在MySqlOpr中 /// <summary> /// 获取MySql数据库连接对象。 /// </summary> /// <param name="dbFile">数据库文件路径...原创 2019-01-17 23:35:03 · 282 阅读 · 0 评论 -
双线性插值 - c#实现
1.双线性插值 线性插值是游戏Unity开发过程中非常常用的算法,在Unity中直接使用 lerp函数就可以实现。但对于双线性插值,Unity并没有给出可以直接使用了API,下面会给出一个利用C#对二维数组进行双线性插值的算法。下图是双线性插值的示意图(图片取自维基百科英文页),对于一个正方形的区域,已知四个顶点的值,我们希望通过这四个值获取正方形区域某一位置的值,就要用到双线性插值。我们...原创 2018-12-31 19:52:49 · 4621 阅读 · 5 评论