自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(201)
  • 资源 (5)
  • 收藏
  • 关注

原创 C# 观察者模式

在C#中,观察者模式(Observer Pattern)是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有注册过的观察者对象,使它们能够自动更新自己。

2024-07-08 15:22:42 260

原创 C# 适配器模式

csharp复制代码set;set;// 构造函数、其他方法等...csharp复制代码// 旧的日志记录逻辑在这个例子中,类充当了适配器,它实现了ILogger接口,并将LogMessage对象转换为能够理解的字符串格式。这样,我们就可以在不修改代码的情况下,将其集成到新的日志框架中。这就是C#中适配器模式的一个简单应用示例。

2024-07-08 15:19:42 159

原创 C# 工厂模式

C# 中的工厂模式(Factory Pattern)是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需在代码中显式指定要创建的具体类。工厂模式的核心在于将对象的创建逻辑封装在一个专门的工厂类中,这样当需要创建对象时,客户端只需向工厂类发送请求,而无需知道对象的创建细节。工厂模式主要分为三种类型:简单工厂模式(Simple Factory Pattern)、工厂方法模式(Factory Method Pattern)和抽象工厂模式(Abstract Factory Pattern)。

2024-07-08 15:11:13 136

原创 C# 设计模式原则

C# 作为一种强类型、面向对象的语言,非常适合应用设计模式来构建可维护、可扩展和可复用的软件系统。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些原则帮助开发者在编写代码时做出更好的设计决策。这些原则在设计大型软件系统时特别有用,它们可以帮助开发者避免常见的设计陷阱,如过度耦合、缺乏灵活性、难以维护等。通过遵循这些原则,可以设计出更加健壮、灵活和可扩展的软件系统。

2024-07-08 14:53:51 193

原创 unity ugui 物体跟随鼠标移动

在Unity中,使用UGUI(Unity的图形用户界面系统)创建一个物体(比如一个图片或按钮)跟随鼠标移动的效果,可以通过编写一个简单的脚本来实现。方法用于将鼠标的屏幕位置转换为UI元素本地空间中的位置,从而实现跟随效果。或其他你喜欢的名字,然后将这个脚本附加到你想要跟随鼠标移动的UI元素上。:首先,在Unity编辑器中创建一个UI元素,比如一个。接口,使得UI元素能够在鼠标拖拽时跟随移动。:创建一个新的C#脚本,命名为。

2024-07-05 01:20:55 250

原创 unity 角色头顶显示对话框

在Unity中实现角色头顶显示对话框(也称为悬浮对话框或提示框)的功能,可以通过结合UI系统和脚本来完成。

2024-07-04 12:43:28 333

原创 unity ugui screen-space-camera 获取屏幕坐标

但是,如果你的目标是获取一个UI元素相对于屏幕(Screen Space Camera)的坐标,通常这意味着你想要得到该元素在屏幕上的绝对位置(即,不考虑滚动或缩放等因素,仅考虑其在屏幕上的位置)。如果你想要获取一个UI元素(比如一个按钮或文本)的屏幕坐标,或者将屏幕坐标转换为UI元素内的坐标,你可以使用。的用途实际上是为了将屏幕坐标转换为UI元素内的局部坐标,而不是用来直接获取UI元素的屏幕坐标。不过,如果你想要的是将UI元素的本地坐标(或称为画布空间坐标)转换为屏幕坐标(像素坐标),你可以使用。

2024-07-04 04:20:12 299

原创 unity 碰撞检测原理

Unity的碰撞检测原理是通过物理引擎实现的,主要依赖于碰撞器和刚体组件。开发者可以根据游戏需求选择合适的碰撞检测模式和碰撞器类型,以实现准确且高效的碰撞检测。同时,Unity还提供了触发器机制来检测物体进入或离开某个区域,进一步丰富了碰撞检测的功能。

2024-07-03 12:47:30 412

原创 C# LINQ 详解

LINQ是C#中一项强大的功能,它允许你使用统一、简洁和类型安全的方式查询和操作各种类型的数据。通过学习和掌握LINQ,你可以更高效地处理数据,提高代码的可读性和可维护性。

2024-06-28 11:06:06 320

原创 C#双向链表LinkedList排序实现方法

如果你真的需要原地排序(即不创建新的链表结构),那么你可能需要实现一个更复杂的算法,如链表归并排序,但这将涉及到递归和额外的空间复杂度。进行排序,你可能需要实现一个排序算法,如冒泡排序、插入排序、归并排序等。但是,请注意,这些算法在链表上可能不如在数组上高效,因为链表不支持快速的索引访问。是一个双向链表结构,它主要关注的是在链表的两端进行高效的插入和删除操作,而不是排序。(尽管这通常不是最高效的方法,因为这会涉及到多次迭代和可能的内存分配)。进行排序,而是创建了一个新的已排序的。请注意,上述示例中的。

2024-06-28 11:03:07 189

原创 C# linkedlist 和list 区别

都是泛型集合类,但它们在内部实现、性能特性以及使用场景上有所不同。由于其高效的索引访问和相对简单的API而更为常用。然而,在某些特定场景下,时,应该考虑你的具体需求和使用场景。可能提供更好的性能或更符合你的需求。

2024-06-28 10:56:32 147

原创 C# 语法糖

在C#中,"语法糖"(Syntactic Sugar)是指那些没有为语言增加新功能,但可以使代码编写起来更加简洁、易读或易写的语言特性。虽然这不是纯粹的“语法糖”,但LINQ的查询语法确实使代码更简洁。然而,重要的是要理解这些特性背后的实际代码和工作原理,以便在需要时能够更有效地使用它们。扩展方法允许你为现有类型添加新的方法,而无需创建新的派生类型。虽然这不是语法糖,但它们是C#中一个非常有用的特性,可以使代码更加灵活。方法的集合类型,可以使用集合初始化器来初始化集合。虽然这不是纯粹的“语法糖”,但。

2024-06-28 10:21:15 249

原创 引用类型和值类型之间有什么区别

引用类型和值类型之间的区别主要体现在以下几个方面:intfloatcharboolstructenumclassinterfacearraystringdelegateEquals。

2024-06-27 10:31:31 408

原创 unity 用Dots 生成1000个实体

在Unity中,使用Data-Oriented Technology Stack (DOTS) 来生成大量的实体(如使用ECS - Entity Component System)是一个性能优化的好方法。注意:上面的代码是一个简化的示例,用于展示如何使用ECS生成实体。:在你的初始化代码(可能是一个MonoBehaviour的Start方法或一个IJobSystem的初始化逻辑)中,创建一个新的World并生成1000个实体。:首先,你需要定义一个或多个组件来表示你的实体数据。例如,你可以创建一个简单的。

2024-06-19 10:55:51 351

原创 unity assetbundle 和 addressable 区别

Unity中的AssetBundle和Addressable Asset System(Addressables)在资源管理和加载方面有着不同的特点和应用场景。综上所述,AssetBundle和Addressable Asset System在Unity资源管理中各有优势,具体使用哪种方式取决于项目的需求和开发者的偏好。

2024-06-18 17:44:33 443

原创 unity 分布式架构

Unity分布式架构是一种利用Unity引擎构建的,旨在提高可扩展性、可靠性和灵活性的网络系统架构。

2024-06-18 17:36:54 252

原创 unity 委托与事件区别

在Unity和C#编程中,委托(Delegate)和事件(Event)是两个紧密相关的概念,但它们之间有一些重要的区别。这些概念在Unity的脚本编程(通常使用C#)中非常常见,用于实现事件驱动编程模式。

2024-06-18 16:01:40 344

原创 什么是C/C++到Lua的转换

C/C++到Lua的转换主要涉及在编程环境中将C/C++的代码、功能或数据接口暴露给Lua脚本使用的过程。这个过程通常通过一些特定的桥接机制或工具来实现,使得Lua能够调用C/C++的函数、访问C/C++的变量或数据结构,从而扩展Lua脚本的功能和性能。总结来说,C/C++到Lua的转换是一个涉及封装、注册、数据类型转换和内存管理等步骤的过程。通过这个过程,你可以让Lua脚本使用C/C++的强大功能和性能优势,从而扩展其应用场景和性能表现。

2024-06-18 09:43:30 298

原创 unity xlua tolua 区别

性能:xLua 在性能方面可能优于 ToLua,特别是在处理大量数据或复杂逻辑时。功能:xLua 提供了更多的高级特性和优化选项,而 ToLua 则更注重于基本的 Lua 和 C# 互操作性。社区支持:两者都有各自的社区和文档支持,但 xLua 作为后来者,可能更受到一些大型游戏开发团队的青睐。兼容性:两者都兼容 Unity 引擎,但具体版本和平台支持可能有所不同。学习曲线:对于初学者来说,两者都需要一定的学习成本来熟悉其绑定机制和 API 使用方法。

2024-06-18 09:39:57 446

原创 深度解析Protobuf

相反,Protobuf在性能、跨平台性和可扩展性等方面具有显著优势,使得它在许多场景中仍然是一个很好的选择。在选择使用Protobuf时,需要根据具体的应用场景和需求进行权衡和选择。Protobuf(Protocol Buffers)是Google开发的一种数据序列化协议,它被广泛用于数据存储、通信协议等方面。总的来说,Protobuf以其高性能、跨平台、可扩展性、向后兼容性以及自动化的代码生成等特点,成为了现代软件开发中非常受欢迎的一种数据序列化协议。

2024-06-17 13:58:45 385

原创 unity AssetBundle

Unity的AssetBundle是一个用于存储和加载资源的文件格式,它在Unity项目中起到了优化资源加载和管理的重要作用。综上所述,Unity的AssetBundle是一种强大的资源管理工具,它允许开发者更灵活地管理和加载项目中的资源,从而优化游戏的性能和内存使用。

2024-06-17 11:16:19 243

原创 如何在C#中动态生成代码

在C#中动态生成代码通常指的是在运行时构建源代码字符串,然后可能使用编译器服务(如Roslyn)来编译并执行这段生成的代码,或者将代码写入到文件中。

2024-06-04 10:43:30 328

原创 C# 哈希表和字典区别

在选择使用哪个集合时,请考虑你的具体需求,包括性能、类型安全、线程安全性和内存使用等因素。都是用于存储键值对集合的数据结构,但它们之间存在一些重要的差异。是一个更好的选择,因为它提供了更好的性能和类型安全。

2024-06-04 10:26:12 169

原创 unity 切水果原理

Unity中切水果的原理结合了游戏设计、物理模拟和编程实现等多个方面。通过精心设计的游戏内容和操作、真实的物理模拟以及高效的编程实现,可以为玩家提供沉浸式的游戏体验。

2024-06-03 13:31:44 434

原创 unity Protobuf 优缺点

总结来说,Unity中使用Protobuf的主要优势在于其高效性、可扩展性、跨平台与跨语言支持以及自定义结构体的直接支持;而其主要劣势在于其不可读性、不支持动态类型、学习和使用成本以及不适合所有应用场景的特点。在决定是否在Unity中使用Protobuf时,需要根据项目的具体需求和场景来权衡这些优缺点。

2024-05-31 16:27:26 362

原创 python 文件夹文件一键改名

函数来重命名这些文件。以下是一个简单的示例,该示例将当前目录(或指定目录)中的所有。模块来遍历文件夹中的文件,并使用。在Python中,你可以使用。

2024-05-30 17:23:48 225

原创 unity 降低drawcall

在Unity中,降低Draw Calls(绘图调用)是优化图形性能的关键步骤之一。Draw Call是CPU向GPU发送指令以渲染一个或多个对象的过程。过多的Draw Calls会导致CPU和GPU之间的通信变得频繁,从而消耗大量性能。请注意,每个项目都有其独特的优化需求,因此最好根据你的具体项目需求来应用这些策略。

2024-05-30 15:35:28 438

原创 C# 泛型解析

在C#中,泛型(Generics)是一种允许你定义灵活的类、结构、接口和方法的方式,这些类、结构、接口和方法可以处理任意数据类型,而不需要在运行时确定具体的类型。泛型的主要优点是类型安全和代码重用。

2024-05-30 15:09:32 164

原创 unity 对象池

首先,你需要一个类来管理对象池。这个类应该能够存储对象,提供获取和回收对象的方法。

2024-05-30 10:18:41 244

原创 unity 控制GPU实现并发计算

Burst Compiler是Unity提供的一个可选的C#编译器,它可以将C#代码编译成高效的机器码,以在GPU或CPU上执行。虽然它本身并不直接在GPU上运行任务,但你可以将GPU计算任务(如Compute Shaders的调度)封装在Jobs中,以实现更复杂的并发工作流程。总之,虽然Unity本身并不直接提供控制GPU进行并发计算的完整功能集,但你可以通过结合使用Compute Shaders、Jobs System、Burst Compiler和其他技术来在Unity中实现高效的并发计算。

2024-05-30 10:07:10 340

原创 unity 实现圆形拖拽

在Unity中实现圆形拖拽的功能,通常涉及监听鼠标的输入(例如按下、移动和释放)并在场景中根据这些输入更新一个物体的位置。以下是一个基本的步骤指南,用于在Unity中实现圆形拖拽功能:创建场景和物体: 在Unity编辑器中创建一个新的场景。 创建一个你希望被拖拽的物体(例如一个Sphere或者Cube),并为其添加一个脚本组件(例如命名为“DragHandler”)。 编写拖拽脚本: 打开“DragHandler”脚本,并编写以下基本功能: 变量:存储鼠标按下时的屏幕坐标、物体在世界

2024-05-30 10:04:20 429

原创 unity 写一个玻璃效果 shader

要实现更复杂的玻璃效果,你可能需要使用屏幕空间反射(Screen Space Reflection, SSR)或射线追踪(Ray Tracing)等技术,这通常涉及更复杂的计算和更多的Shader代码。这里,我将提供一个基本的GLSL代码示例,你可以将其用于Unity的Shader中,以创建一个简单的玻璃效果。另外,Unity的Shader Graph工具也提供了一个直观的方式来创建和编辑Shader,你可以考虑使用它来简化Shader的开发过程。

2024-05-29 11:39:33 170

原创 如何在Lua中实现多态

元方法,结合动态分发(dynamic dispatch)来模拟类似多态的行为。然而,由于Lua是动态类型语言,并且没有像传统面向对象语言那样的继承和接口机制,所以实现严格意义上的多态会比较复杂。此外,Lua中的多态还可以通过使用闭包、委托(delegate)或更高级的设计模式(如访问者模式)来实现。这些技术可以进一步扩展Lua的面向对象编程能力,但也会增加代码的复杂性。由于Lua的动态类型特性,这里实现了类似多态的行为:当传入。在实际应用中,你可能需要手动实现这样的方法来创建类的实例。

2024-05-28 16:07:29 222

原创 什么是动态分发动态分发是什么意思

动态分发,也称为动态分发机制,是指在程序运行时,根据对象的实际类型来选择并执行相应的函数或方法。这种机制使得程序能够灵活地处理不同类型的对象,而无需在编译时确定所有的类型和行为。总之,动态分发是一种强大的机制,它使得程序能够根据对象的实际类型来灵活地调用不同的函数或方法,从而提高了程序的灵活性和可扩展性。

2024-05-28 15:49:06 260

原创 Unity代码生成股市走势曲线

在Unity中生成股市走势曲线通常涉及几个步骤。首先,你需要获取股市数据(可能是实时的或历史数据),然后将这些数据转换为Unity中可以使用的格式,并使用Unity的图形绘制功能(如组件)来绘制曲线。

2024-05-14 14:23:57 312

原创 unity 相机滤镜 实现类似Hexagon滤镜效果

C#代码 添加到相机上。

2024-05-14 14:06:40 691

原创 unity 相机滤镜 实现类似水晶风格动态滤镜

Shader 代码 =================================C# 代码 需将C#代码绑定到相机。

2024-05-11 16:26:14 1012

原创 unity 群集算法

在Unity中,实现群集(Flocking)或群集行为(Swarming Behavior)的算法通常涉及模拟一组个体(如鸟群、鱼群等)如何相互协作以表现出集体移动的模式。此外,还有一些更复杂的群集算法,如基于物理的模拟(如粒子系统)、基于机器学习的算法(如神经网络)等,可以在Unity中实现以产生更自然和复杂的行为。请注意,这只是一个基本的框架,并且可以根据需要进行修改和扩展。例如,可以添加更多的规则(如障碍物避免、目标导向等),或者改变力的计算方式(如使用不同的权重、衰减函数等)来产生不同的行为模式。

2024-05-11 09:56:37 702

原创 斐波那契数列

斐波那契数列的通项公式有多种,其中一种是基于Binet公式的,它给出了斐波那契数列中任意一项的精确值,但计算过程中涉及到了平方根和幂运算,因此在实际应用中可能不太方便。不过,由于递归方法可能会导致大量的重复计算,因此在处理较大的斐波那契数时,迭代方法通常更加高效。这个数列从第三项开始,每一项都等于前两项之和。例如,在自然界中,许多植物的叶子、花瓣和种子的排列都遵循斐波那契数列的规律;其中,第0项是0,第1项是1,第2项是1(0 + 1),第3项是2(1 + 1),第4项是3(1 + 2),依此类推。

2024-05-10 17:22:57 219

原创 unity C# 实现一个简单的递归

递归虽然强大,但也需要谨慎使用,因为不适当的递归可能会导致栈溢出(Stack Overflow)错误,特别是当递归深度过大时。在设计递归函数时,确保你有一个清晰的递归终止条件,并且这个条件总会在有限次数的递归后被满足。在Unity的C#脚本中,递归(Recursion)是一种强大的编程技术,它允许一个函数在其执行过程中调用自身。下面是一个简单的Unity C#递归示例,该示例计算一个数字的阶乘(n的阶乘是n乘以(n-1)乘以(n-2)…小于或等于1,此时递归停止并返回1(阶乘的基准情况)。

2024-05-10 17:20:38 225

sed-4.2.1.tar.gz

命令

2021-09-24

UnityNativeGallery-master.zip

unity 保存图片到相册工程支持 安卓 ios

2021-08-24

reflectorlsz2021.zip

C# dll 查看工具 reflector

2021-06-24

AssetStudio2021.6.11.zip

unity 资源查看工具

2021-06-23

APK Easy Tool v1.59.2 Portable.zip

apk查看工具 APK Easy Tool

2021-06-22

空空如也

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

TA关注的人

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