- 博客(139)
- 资源 (18)
- 问答 (1)
- 收藏
- 关注
原创 Unity Mesh 生成图形(三)
Unity 的 Mesh 是用于表示三维物体的网格数据结构。它是由一系列顶点和三角形组成的网格,用于描述物体的形状和外观。Mesh 是由顶点、三角形和其他相关信息组成的,它用于在 Unity 中创建和渲染三维对象。顶点是网格的基本构建单元,它们定义了物体的形状,每个顶点都有三维坐标和其他可选属性,如法线、 UV 坐标和颜色。三角形则是由三个顶点组成的,它们定义了网格表面的平面,形成了物体的可见表面。Mesh 类提供了许多方法来操作顶点和三角形,例如添加、删除、移动顶点和三角形,以及调整网格的大小和形状。
2024-04-09 17:35:32 1074
原创 Unity Mesh 生成图形(二)
Unity 的 Mesh 是用于表示三维物体的网格数据结构。它是由一系列顶点和三角形组成的网格,用于描述物体的形状和外观。Mesh 是由顶点、三角形和其他相关信息组成的,它用于在 Unity 中创建和渲染三维对象。顶点是网格的基本构建单元,它们定义了物体的形状,每个顶点都有三维坐标和其他可选属性,如法线、 UV 坐标和颜色。三角形则是由三个顶点组成的,它们定义了网格表面的平面,形成了物体的可见表面。Mesh 类提供了许多方法来操作顶点和三角形,例如添加、删除、移动顶点和三角形,以及调整网格的大小和形状。
2024-04-03 14:00:57 678
原创 Unity 使用 IL2CPP 发布项目
Unity的IL2CPP(Intermediate Language to C++)是一个编译技术,它将C#代码转换为C++代码,然后再编译成平台相关的二进制代码。IL2CPP提供了几个优点,特别是在性能和跨平台部署方面。:IL2CPP通常能提供比传统的Mono运行时更好的性能,因为它可以利用本地编译器的优化。:由于IL2CPP生成的是C++代码,这使得它更容易被跨平台的编译器支持,因此你可以将游戏编译到多个平台,包括iOS、Android、Windows、Mac、Linux和游戏主机。
2024-04-02 16:30:34 1598
原创 Unity Mesh 生成图形(一)
Unity 的 Mesh 是用于表示三维物体的网格数据结构。它是由一系列顶点和三角形组成的网格,用于描述物体的形状和外观。Mesh 是由顶点、三角形和其他相关信息组成的,它用于在 Unity 中创建和渲染三维对象。顶点是网格的基本构建单元,它们定义了物体的形状,每个顶点都有三维坐标和其他可选属性,如法线、 UV 坐标和颜色。三角形则是由三个顶点组成的,它们定义了网格表面的平面,形成了物体的可见表面。Mesh 类提供了许多方法来操作顶点和三角形,例如添加、删除、移动顶点和三角形,以及调整网格的大小和形状。
2024-03-30 15:13:38 1024
原创 Unity 弹框选择文件、文件夹、保存文件
最近我负责一个模拟仿真项目,我使用 Unity3d + 发布 PC 平台作为解决方案。其中有一个功能,需要弹框让用户选择一个 txt 文件,并读取 txt 文件的内容,于是我开始网上查找资料,发现大多数帖子都是通过在 Unity 编辑器的特定目录中(如:Unity Editor\2022.3.2t7\Editor\Data\MonoBleedingEdge\lib\mono\2.0-api)找到一个 System.Windows.Forms.dll 文件,并将其导入项目中。
2024-03-18 15:34:36 1465 2
原创 谷歌 Gemma 安装教程
Gemma 是谷歌推出了全新的开源模型。Gemma 是免费的,模型权重也一并开源了,并且允许商用,支持安装在本地,即使了断网依然使用,另外和还可以适配不同配置的电脑,根据你的电脑的显卡,有不同的 AI 模型提供选择。Gemma 官网:https://ai.google.dev/gemma/这里使用的方式快速安装。Gemma 对显卡有一定的要求,显卡越好,执行的速度越快,Gemma 对英伟达(NVIDIA)做了专门的适配,在官网的主页就可以看到对应的介绍。
2024-03-09 17:30:13 2082 2
原创 TypeScript 基础(一)
TypeScript 是一种由微软开发的开源编程语言。它是 JavaScript 的一个超集,这意味着它在 JavaScript 的基础上进行了扩展,添加了一些新的特性,最主要的特性就是静态类型系统。这些类型不仅提供了代码的类型校验,还能增强编辑器和IDE的功能,例如代码自动完成、接口定义跳转、重构代码等。静态类型系统的主要优点之一是能在代码运行之前发现潜在的错误,这对大型项目或团队协作尤其有用。它还有助于文档化代码,因为类型注解和接口提供了有关如何使用代码的清晰指导。
2024-03-08 14:34:34 632
原创 C# NLua Winform 热更新
NLua 是一个用于 .NET 平台的 Lua 脚本绑定库。它允许在 C# 代码中嵌入 Lua 脚本,并允许两者之间进行交互。NLua 的主要特点包括:轻量级:NLua 是一个轻量级的库,易于集成到现有的 .NET 项目中。动态类型:Lua 是动态类型的语言,这意味着变量的类型可以在运行时改变。灵活的绑定:NLua 提供了灵活的绑定机制,使得 C# 和 Lua 之间的数据交互变得简单
2023-12-28 13:41:08 1350
原创 C# Windows 服务程序的开发
安装程序将服务的可执行文件注册到系统服务管理器中,并提供安装、卸载和配置服务的功能。在这个类中,需要重写 OnStart 和 OnStop 方法,分别用于处理服务的启动和停止逻辑。通过使用 .NET 提供的相关类和方法,可以轻松地创建、安装、启动和停止 Windows 服务。Windows 服务是一种特殊类型的应用程序,它可以在操作系统启动时自动启动,并在后台持续运行,而无需用户交互。这里重写了一个 OnStart 和 OnStop 方法,意思是程序启动的时候执行一次,和程序关闭的时候执行一次。
2023-12-23 16:32:45 1834 2
原创 C# Winform 日志系统
控制台输出日志确实很方便,但它同时也有多缺点,比如,在 winform 程序运行后,任务栏会同时两个应用的图标,控制台也算一个单独的程序,如果一个程序在运行也就
2023-12-10 14:58:27 2078
原创 C# 时间计算(二)
在 C# 中,DateTime 用于处理日期和时间的内置类,其值范围为 00:00:00 (午夜) , 0001年1月1日,安诺·多米尼 (公历) 年12月31日晚上11:59:59 (公历 )。时间值以 100 纳秒为单位进行测量,称为刻度。特定日期是自 A.0001 年 1 月 1 日午夜 12:00 以来的时钟周期数, (日历中的 GregorianCalendar C.E.)。该数字不包括按闰秒添加的刻度。
2023-11-24 21:00:42 2022
原创 C# 时间计算(一)
在 C# 中,DateTime 用于处理日期和时间的内置类,其值范围为 00:00:00 (午夜) , 0001年1月1日,安诺·多米尼 (公历) 年12月31日晚上11:59:59 (公历 )。时间值以 100 纳秒为单位进行测量,称为刻度。特定日期是自 A.0001 年 1 月 1 日午夜 12:00 以来的时钟周期数, (日历中的 GregorianCalendar C.E.)。该数字不包括按闰秒添加的刻度。
2023-11-24 16:53:05 1641
原创 C# 工厂模式
工厂模式(Factory Pattern)是一种创建型设计模式,它提供了一种创建对象的最佳方式。在C#中,工厂模式通过定义一个公共接口或抽象类来创建对象,而具体的对象创建则由工厂类来实现。工厂模式主要包含三个角色:1. 抽象产品(Abstract Product):定义了产品的接口,具体产品需要实现这个接口。2. 具体产品(Concrete Product):实现了抽象产品接口的具体类。3. 工厂(Factory):负责创建具体产品的工厂类,通常包含一个创建产品的方法。
2023-08-23 15:59:50 1972
原创 C# 观察者模式
在C#中,观察者模式通过定义一种一对多的依赖关系,使得当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新。4. ConcreteObserver(具体观察者):具体的观察者,它继承或实现了观察者接口,并实现了更新方法。当接收到被观察者的通知时,它会执行相应的逻辑。3. ConcreteSubject(具体主题):具体的被观察者,它继承或实现了主题接口,并实现了具体的业务逻辑。1. Subject(主题):被观察者,它维护了一个观察者列表,并提供了添加、删除和通知观察者的方法。
2023-08-19 11:51:16 2161 2
原创 C# Winform DataGridView 数据刷新问题
DataGridView 是比较常用的表格控件,在 DataGridView 中显示数据, 一般使用 dataGridView1.DataSource = 数据源,来绑定数据,数据源可以是 DataTable、List、Dictionary 等,那么如何做到及时刷新数据呢,这里我提出几个问题:1.绑定一个空的数据源,后面向数据源添加数据。2.DataGridView 绑定一个有数据的数据源,后面再向数据源添加数据。3.将数据源的某一行,某一列的数据修改为其他的数据。4.删除数据源的某一列。
2023-08-11 21:29:02 10452
原创 C# 外观模式
外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个统一的接口,用于访问子系统中的一组接口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式是迪米特法则的一种具体实现,通过引入一个新的外观角色可以降低原有系统的复杂度,同时降低客户类与子系统的耦合度。1 外观类(Facade):在外观角色中可以知道相关的(一个或者多个)子系统的功能和责任;2 子系统类集合(SubSystem Classes):子系统类集合实现了子系统的功能,处理外观类对象指派的任务。
2023-08-01 16:50:07 1059 2
原创 C# List 文档(七)
表示可通过索引访问的对象的强类型列表。 提供用于对列表进行搜索、排序和操作的方法,List是一个动态数组,它可以存储任意类型的对象,并且可以根据需要自动调整大小。
2023-07-21 14:14:51 433 2
原创 C# List 文档(六)
表示可通过索引访问的对象的强类型列表。 提供用于对列表进行搜索、排序和操作的方法,List是一个动态数组,它可以存储任意类型的对象,并且可以根据需要自动调整大小。
2023-07-21 10:00:21 364
原创 C# List 文档(五)
表示可通过索引访问的对象的强类型列表。 提供用于对列表进行搜索、排序和操作的方法,List是一个动态数组,它可以存储任意类型的对象,并且可以根据需要自动调整大小。
2023-07-21 09:54:38 576
原创 C# List 文档(四)
表示可通过索引访问的对象的强类型列表。 提供用于对列表进行搜索、排序和操作的方法,List是一个动态数组,它可以存储任意类型的对象,并且可以根据需要自动调整大小。
2023-07-21 09:52:30 306
原创 C# List 文档(三)
表示可通过索引访问的对象的强类型列表。 提供用于对列表进行搜索、排序和操作的方法,List是一个动态数组,它可以存储任意类型的对象,并且可以根据需要自动调整大小。
2023-07-21 09:50:55 551
原创 C# List 文档(二)
表示可通过索引访问的对象的强类型列表。 提供用于对列表进行搜索、排序和操作的方法,List是一个动态数组,它可以存储任意类型的对象,并且可以根据需要自动调整大小。
2023-07-21 09:45:42 530
原创 C# List 文档(一)
表示可通过索引访问的对象的强类型列表。 提供用于对列表进行搜索、排序和操作的方法,List是一个动态数组,它可以存储任意类型的对象,并且可以根据需要自动调整大小。
2023-07-21 09:37:31 557
原创 C# IEnumerator 用法
IEnumerator 是所有非泛型枚举器的基接口。其泛型等效项是 System.Collections.Generic.IEnumerator 接口。C# 语言的 foreach 语句(在 Visual Basic 中为 for each)隐藏了枚举数的复杂性。因此,建议使用 foreach 而不是直接操作枚举器。枚举器可用于读取集合中的数据,但不能用于修改基础集合。方法 Reset 为实现 COM 互操作性而提供,不需要完全实现;
2023-07-15 16:06:25 2318
原创 C# Linq 文档(四)
语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。数据查询历来都表示为简单的字符串,没有编译时类型检查或 IntelliSense 支持。此外,需要针对每种类型的数据源了解不同的查询语言:SQL 数据库、XML 文档、各种 Web 服务等。借助 LINQ,查询成为了最高级的语言构造,就像类、方法和事件一样。对于编写查询的开发者来说,LINQ 最明显的“语言集成”部分就是查询表达式。查询表达式采用声明性查询语法编写而成。
2023-07-14 12:13:02 1856
原创 C# Linq 文档(三)
语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。数据查询历来都表示为简单的字符串,没有编译时类型检查或 IntelliSense 支持。此外,需要针对每种类型的数据源了解不同的查询语言:SQL 数据库、XML 文档、各种 Web 服务等。借助 LINQ,查询成为了最高级的语言构造,就像类、方法和事件一样。对于编写查询的开发者来说,LINQ 最明显的“语言集成”部分就是查询表达式。查询表达式采用声明性查询语法编写而成。
2023-07-14 12:12:20 1981
原创 C# Linq 文档(二)
语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。数据查询历来都表示为简单的字符串,没有编译时类型检查或 IntelliSense 支持。此外,需要针对每种类型的数据源了解不同的查询语言:SQL 数据库、XML 文档、各种 Web 服务等。借助 LINQ,查询成为了最高级的语言构造,就像类、方法和事件一样。对于编写查询的开发者来说,LINQ 最明显的“语言集成”部分就是查询表达式。查询表达式采用声明性查询语法编写而成。
2023-07-13 17:28:39 1218
原创 C# Linq 文档(一)
语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。数据查询历来都表示为简单的字符串,没有编译时类型检查或 IntelliSense 支持。此外,需要针对每种类型的数据源了解不同的查询语言:SQL 数据库、XML 文档、各种 Web 服务等。借助 LINQ,查询成为了最高级的语言构造,就像类、方法和事件一样。对于编写查询的开发者来说,LINQ 最明显的“语言集成”部分就是查询表达式。查询表达式采用声明性查询语法编写而成。
2023-07-13 17:16:01 1339
原创 C# 在控制台整齐的输出 DataTable
在Winform 平台,可以用 DataGridView 这样的控件来显示数据库的表单数据,但在 C# 控制台项目中,如果有用到数据库查询,我们想看看查询语句的效果,就比较困难了,比如,我随意写了一个控制台输出,代码如下:
2023-07-04 14:26:01 1615
原创 C# params 可变参数
params 关键字用于定义一个方法的可变参数列表。它允许方法接受任意数量的参数,而不需要事先指定参数的数量。使用 params 关键字,可以更灵活地调用方法,而不必为每个不同数量的参数编写多个方法重载。要使用 params 关键字,需要在方法的参数列表中将可变参数标记为 params 关键字。这个参数必须是一个数组类型,并且必须是方法参数列表的最后一个参数。当调用方法时,可以传递任意数量的参数,它们将被封装为一个数组,并作为 params 参数传递给方法。
2023-06-29 15:41:52 488
原创 C# ref / out 用法
在C#中,ref和out关键字用于参数传递的方式。它们允许在方法内部对参数进行修改,并将修改后的值带回到调用方法中。ref关键字用于传递引用类型的参数。当使用ref关键字传递参数时,方法内部对参数的任何修改都会影响到调用方法中的原始变量。out 关键字主要用于传递值类型的参数,并且要求在方法内部对参数进行赋值。与ref不同,使用out关键字传递参数时,不需要在调用方法之前对参数进行初始化。
2023-06-29 11:32:05 2662
原创 C# Winform DataGridView 控件和 DataTable
DataGridView 控件提供用于显示数据的可自定义表。类 DataGridView 允许通过使用属性(如 DefaultCellStyle、 ColumnHeadersDefaultCellStyle、 CellBorderStyle和)自定义单元格、行、列和 GridColor边框。有关详细信息,请参阅微软 DataGridView 控件中的基本格式设置和样式设置。可以使用 DataGridView 控件在基础数据源中或不使用基础数据源显示数据。
2023-06-27 19:14:42 11892 2
原创 C# 线程基础(二)
1.lock 只对多线程有效,对单线程无效,单线程 lock 不会导致死锁。2.不推荐使用 lock(this),因为在它外部也可以访问它。3.不应该使用 lock(string(类型)),因为 string 在内存分配上是重用的,可能会导致冲突。4.lock 中包含的代码最好不要太多,因为在这里是单线程运行的。5. .net 提供了一些线程安全的集合类,使用这些集合不需要用到 lock。6.在可以使用数据分拆的方法来使用多线程时,最好使用数据分拆而不使用 lock。
2023-06-26 16:07:02 250
原创 C# 线程基础(一)
线程(Thread)是进程中的基本执行单元,是操作系统分配CPU时间的基本单位,一个进程可以包含若干个线程,在进程入口执行的第一个线程被视为这个进程的主线程。在.NET应用程序中,都是以Main()方法作为入口的,当调用此方法时系统就会自动创建一个主线程。线程主要是由CPU寄存器、调用栈和线程本地存储器(Thread Local Storage,TLS)组成的。CPU寄存器主要记录当前所执行线程的状态,调用栈主要用于维护线程所调用到的内存与数据,TLS主要用于存放线程的状态信息。
2023-06-25 18:59:25 620
原创 C# Http 请求接口 Get / Post
get 和 post 请求,最早被用来做浏览器与服务器之间交互HTML和表单的通讯协议,后来又被广泛的扩充到接口格式的定义上,到目前为止,get / post 请求依然应用在各大网站中,比如在用户登录时,调用 get / post 请求将用户名、密码传到服务器,由服务器进行判断,是否允许用户登录,再将结果返回给浏览器,这样就实现了登录的功能。在后期的 pc 软件开发中,get / post 请求偶尔也会用到,做为一个程序员,http 协议也是我们必须要学的知识点。
2023-06-22 14:05:26 12339 7
原创 C# 反射 (Reflection) 的常用功能
反射指程序可以访问、检测和修改它本身状态或行为的一种能力。程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。优点:1、反射提高了程序的灵活性和扩展性。2、降低耦合性,提高自适应能力。3、它允许程序创建和控制任何类的对象,无需提前硬编码目标类。
2023-06-21 15:39:33 1031
原创 C# Winform Label 控件
Label 控件是 winform 开发中最常用的一个控件,一般用做显示文本,也有时用做打开链接等操作。
2023-06-21 09:20:03 4679
原创 C# WebSocketSharp 框架的用法
WebSocketSharp 是一个 C# 实现 websocket 协议客户端和服务端,WebSocketSharp 支持RFC 6455;WebSocket客户端和服务器;消息压缩扩展;安全连接;HTTP身份验证;查询字符串,起始标题和Cookie;通过HTTP代理服务器连接;.NET Framework 3.5或更高版本(包括兼容环境,如Mono)。github 地址。
2023-06-19 14:40:41 1577
C# Winform GDI+ 绘图
2024-01-08
C# NLua 框架 Winform WPF 热更新
2023-12-28
C# Windows 服务程序的开发
2023-12-23
C# Winform 日志系统
2023-12-10
C# 模拟 Unity3d 协程(防标题过短)
2023-07-31
C# 定时器封装版(防标题过短)
2023-07-31
C# 定时器改进版(防标题过短)
2023-07-31
C# Http 请求接口 Get / Post
2023-06-21
C# Winform WPF 自动更新(基于FTP)
2023-06-15
C# Winform 多个程序之间的通信(非Scoket)
2023-06-10
C# CefSharp 框架,封装完整
2023-05-13
Unity 连接 MySql 显示表格(Simple TableUI)
2023-03-13
Unity UI 框架(简单易懂)
2023-02-21
Unity UGUI 滚动列表
2023-02-14
C# Winform 三层架构
2022-12-20
C# Winform WPF 热更新 基于ECSharp框架
2022-10-30
Winfrom WPF等 软件自动更新解决方案
2022-10-21
C# WebSocket(Fleck) 客户端html Winfrom
2022-10-08
C# Winfrom 右键菜单
2022-07-13
C# Winfrom Chart控件 柱状图、折线图
2022-06-29
C# Winform 自定义进度条ProgressBar
2022-06-23
C# Winform 相册功能,图片缩放,拖拽,预览图分页
2022-06-21
C# Winform SplitContainer组件创建侧边菜单
2022-06-17
C# SQLite 增、删、改、查、创建加密数据库 Demo
2022-06-13
C# Winform用线程写入txt文件,并更新UI和进度
2022-05-09
WPF LiveCharts动态曲线(折线图)
2022-05-05
System.Windows.Forms.DataVisualization Demo案例
2022-04-27
C# SQLite Demo
2022-01-19
NetDimension.NanUI.AssemblyResourceHandler.0.7.4.zip
2021-04-29
Visual Studio 2022 每次打开都要提示登录,这个要怎么解决
2022-05-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人