自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数组与List<T>

在C#中,数组是一种数据结构,用于存储同一类型的多个元素。数组一旦创建,其大小就是固定的。数组中的元素是通过索引访问的,索引从0开始。如何创建和使用数组:声明数组:声明数组时,必须指定数组的类型和数组的大小。

2024-12-20 14:58:26 1571

原创 C#对象池

它通过预先创建一定数量的对象,并在需要时重复使用这些对象,而不是每次需要时都创建新的对象,从而减少对象创建和销毁的开销,提高程序的运行效率和资源的利用率‌。例如,在FPS游戏中,敌人、子弹等可以使用对象池来减少创建和销毁对象的开销,从而提高游戏性能‌。简化对象生命周期管理:在对象池中获取对象时,无需初始化对象,直接使用即可。减少资源开销:通过重用对象,避免了频繁创建和销毁对象带来的资源开销。控制资源使用:可以控制对象池中对象的数量,防止资源使用过多。‌:减少对象创建和销毁的过程,提高程序的运行效率。

2024-12-20 14:28:45 426

原创 刚体(物理组件)

Continuous Speculative 连续扫描碰撞检测(能够确保快速的移动的物体与物体进行碰撞,而不是穿过这个物体) 举个例子,三维弹球的跷跷板,快速碰撞有可能穿模而无法碰撞。Discrete 离散碰撞检测(默认,适用于大部分刚体,这个肯定是最省资源的,毫无疑问,一般情况下默认这个,Continuous Dynamic 连续动态碰撞检测(适用于高速移动的物体)Continuous 连续碰撞检测(适用于被高速撞击的物体)Collision Detection碰撞检测模式。

2024-12-20 14:15:39 279

原创 Input.Touch类与Gizmos(直译:小玩意儿)

1.一个Touch数组,代表着当前帧,所有手指在屏幕上的触摸状态与相关数据。3.触摸点位置 的两种方法。

2024-12-20 14:08:58 146

原创 C#反序列化

其目的是从存储介质中读取序列化的数据,并将其转换回对象的状态,以便可以继续使用这些对象。在C#中,反序列化可以通过多种方式实现,例如使用二进制序列化、XML序列化或JSON序列化等‌。‌:从其他应用程序接收到共享的序列化数据,并将其转换回对象的状态,以便在本地使用相同的数据‌。‌:接收通过网络发送的序列化数据,并将其转换回对象的状态,以便在本地处理对象。‌:在网络应用中,接收方需要将接收到的序列化数据反序列化为对象,以便进行处理。‌:从存储介质中读取序列化的数据,并将其转换回对象的状态,以便继续使用对象。

2024-12-20 13:58:30 381

原创 什么是序列化

‌:在不同的应用程序之间或不同的执行环境(如客户端和服务器)之间传输对象时,需要将对象序列化为一种标准格式,接收方才能反序列化并重建对象‌。‌:序列化可以用来执行对象的深拷贝,即创建一个对象的完全独立副本,其中所有的子对象都是新的实例,而不是对原始对象的引用‌。‌:通过序列化,可以将对象持久化到文件、数据库或其他存储介质中,即使程序终止,对象的状态也可以在之后被重新加载和使用‌。‌:序列化允许跨语言或跨平台的数据交换,因为序列化后的格式通常是标准化的,不同的系统可以理解和处理这些格式‌。

2024-12-20 13:53:06 255

原创 什么是委托?

C#中的委托是一种引用类型,用于定义方法的类型,使得可以将方法当做另一个方法的参数来进行传递。1.避免使用大量的if-else语句:通过委托,可以将方法作为参数传递给其他方法,从而减少代码中的条件判断,是程序更加简洁。2.提高程序的课扩充性:委托是得程序更加灵活,可以在不修改源代码的情况下,通过委托调用不同的方法,从而增加程序的功能。3.事件处理:委托常用语事件处理程序中,当特定事件发生时,可以通过委托调用相应的方法。是一个委托类型,定义了方法的签名。委托可以链接多个方法,即多播委托。委托是一种引用类型。

2024-12-20 13:46:01 168

原创 Socket

(1)Web服务器与浏览器:浏览器获取用户输入的URL地址,向服务器发起请求,服务器分析接收到的URL请求,将对应的网页内容返回给浏览器,浏览器再经过解析和渲染,将文字、图片、视频等元素呈现给用户‌。Socket本身并不是协议,而是一个调用接口(API),它提供了一系列方法和函数,供应用程序使用TCP/IP协议进行网络通信,包括创建连接、发送数据、接收数据等操作‌。(2)聊天社交工具:如QQ、微信等,本地的聊天程序作为客户端,通过Socket连接到服务器,实现发送和接收信息的过程‌。方法发送和接收数据‌。

2024-12-13 09:12:46 184

原创 简易版登录界面

【代码】简易版登录界面。

2024-12-06 11:30:59 202

原创 C#中静态方法和非静态方法的区别

在C#中,静态方法和非静态方法之间有几个关键的区别,这些区别主要体现在他们的定义、调用方式、访问权限以及对实例成员的访问能力上。‌:只能直接访问类的静态成员(包括静态字段、静态属性、静态方法等),不能直接访问类的实例成员(除非通过某个实例的引用)。‌:每个类的实例都有自己的方法副本(实际上,方法本身在内存中只有一份,但每个实例都有一个指向该方法的引用或指针)。‌:因为静态成员属于类本身,所以静态方法在内存中只有一个副本,无论创建了多少个类的实例。(1)静态方法:可以通过类名直接调用,而不需要创建类的实例。

2024-12-06 11:17:00 415

原创 C#中判断语句的区别

4.Switch语句:Switch语句用于基于某个变量得知执行不同的代码块。它通常用于代替多个if else条件判断,当判断条件为离散的、具体的值时,Switch语句会使代码更加清晰。在C#中,常见的判断语句包括if语句、else if语句、else语句和Switch语句。2.else if语句:else if语句用于在前面的if或else if条件都不满足时,测试另外一个条件。3.else语句:else语句用于前面的if和else if条件都不满足的一段代码。有很多种条件需要判断时,可以使用。

2024-12-06 11:08:07 221

原创 C#协程(Coroutine)

协程在遇到I/O阻塞时不会阻塞整个进程,且不需要加锁机制,简化了同步问题。协程的切换是在线程内完成的,涉及的资源较少,切换代价较小。协程本身是非常轻巧的,可以简单理解为只是切换寄存器和协程栈的内容。协程在I/O密集型任务中表现尤为出色,能够在IO等待时间切换执行其他任务,从而大大节省资源并提供性能。然而,对于计算密集型任务,协程的来回切换可能会降低性能。‌协程的执行过程更类似于子例程,或者说不带返回值的函数调用。协程完全由程序所控制(在用户态执行),避免了内核态和用户态的切换开销,提高了执行效率。

2024-11-28 18:41:13 1223

原创 C#类与对象

1.什么是类?2.类的定义与使用:(1)在C#中,类使用class(2)创建类的实例需要使用new3.类的成员和方法:类可以包含各种成员,如字段、属性和方法。4.类的访问修饰符和继承机制:类的访问修饰符包括publicinternalprotectedprivate等,用于指定类的可见性。5.什么是对象?对象是‌‌。对象是类的一个实例,它包含了‌数据(属性)和‌行为(‌方法)。对象是类的具体表示,每个对象都是类的实例。C#中的对象具有‌、‌和‌等特性。

2024-11-27 19:18:22 426

原创 C#线程、进程的定义与特性

例如,在Web服务器中,每个请求可以由一个独立的线程处理,这样可以同时处理多个请求,提高服务器的吞吐量。‌:由于进程之间相互隔离,每个进程运行在独立的内存空间中,这可以提高系统的安全性,防止一个进程的错误或恶意行为影响到其他进程。例如,在服务器环境中,每个服务运行在不同的进程中,以防止一个服务的崩溃影响到整个服务器‌。‌:进程是资源分配的基本单位,每个进程拥有独立的内存空间和系统资源。‌一个进程可以包含多个线程,这些线程并发执行不同的任务,共享进程中的全部系统资源,如虚拟地址空间、文件描述符和信号处理等。

2024-11-26 17:27:01 465

原创 UDP(开放系统互联)

1.什么是UDP?UDP是一种无连接、不可靠的传输层子协议,主要用于在计算机网络上发送数据报。与TCP不同,UDP不提供数据包的顺序保证或重传机制。UDP是TCP/IP协议族的一部分,与TCP(传输控制协议)共同构成了Internet协议套装的核心组成部分。:UDP是无连接的协议,发送方和接收方之间不需要建立连接就可以传输数据。:UDP不提供数据包的顺序保证,也不处理丢失的数据包。:由于UDP的简化机制,它的传输延迟较低,非常适合实时应用。:UDP将数据分割成小的数据报,每个数据报独立传输。

2024-11-22 20:30:00 1501

原创 TCP(传输控制协议)

1.什么是TCP?TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,有IETF(互联网工程任务组)的RFC_793(tcp传输控制协议)定义。TCP旨在适应多网络应用的分层协议层子结构,能够在互联网络中提供可靠的端到端通信服务2.TCP的基本概念和特性3.TCP 的应用场景TCP广泛应用于需要可靠数据传输的场景,如文件传输、电子邮件、远程登录等。由于其可靠性和流量控制机制,TCP特别适合那些对数据完整性要求较高的应用。4.TCP的优点:‌‌可靠性。

2024-11-22 11:52:13 1822

原创 Unity公共类Playerprefs

3.PlayerPrefabs所用的键都是字符串类型,它所支持的值类型有三种,分别是:string、int和float。数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的过程。PlayerPrefs,它是一个Unity官方提供的,可以用于存储读取玩家数据,实现。(4.1)存储和读取string类型。1.什么是Playerprefs?(4.3)存储和读取float类型。(4.2)存储和读取int类型。2.什么是数据持久化?7.查询键值对是否存在。6.删除存储的键值对。

2024-11-21 17:33:03 229

原创 Unity碰撞器与触发器

1.什么是碰撞器?描述了物体可被碰撞的边界,以及碰撞过程中相互影响效果。2.什么是触发器?,它不会产生物理碰撞反应,而是在物体之间发生碰撞时触发相应的事件。触发器可以用于检测物体之间的接触、进入或离开某个区域等情况。

2024-11-20 19:31:12 395

原创 Unity简易知识

1.unity常用文件夹:scene:场景;在工程视图Project上点击Create-点击Material-命名完成后点击该材质球-在检视视图上点击白色框,即可修改颜色,修改完成后直接将材质球拖动到物体上即可。4.如何创建空物体:层级视图上-点击Create-点击Create Empty-创建后的名字为GameObject-空物体的特点是:只有坐标,没有实际的物体。5.如何制作预设体(预制体):在层级视图上选中物体-直接拖动到工程视图上,变成蓝色字体和图标就是预设体,做成预设体后可以在每个场景中使用。

2024-11-19 19:15:48 434

原创 同步加载、异步加载、跳转场景和退出

1.同步加载:按下回车,同步加载场景。

2024-11-18 19:18:27 280

原创 摄像机组件

current返回渲染图形期间有效的那台相机:Debug.Log(Camera.current);获取世界空间相机的速度(只读):Debug.Log(camera.velocity);打印相机的名字:Debug.Log(Camera.main.name);1.摄像机的一些基本属性:public Camera camera;Main第一个被启用的相机被标记为“MainCamera”的相机。打印长宽比:Debug.Log(camera.aspect);

2024-11-17 17:00:00 221

原创 C#断点调试

2,在Unity中我们使用Debug.Log("") Debug.LogError("") Debug.LogWarn(""),向unity的Console窗口输出信息,帮助我们调试错误。程序调试是在程序中查找错误的过程,检查代码并验证它能够正常运行的有效方法,在测试期间进行程序调试对希望产生的代码结果提供了另一级的验证。2.监视窗口:在添加断点之后点击启动后,在界面上方找到调试--窗口--监视,再监视中随便选一个则进入监视窗口(用红线圈住的则是调试功能)正常模式指的是不会影响程序的正常运行。

2024-11-14 16:47:18 295

原创 Unity生命周期

是当Update调用结束,并且渲染逻辑调用完,才会调用LateUpdate,所以当渲染结束后,需要更新状态的逻辑 可以放到LateUpdate。在控制游戏逻辑的过程中,一般是需要按照每帧去处理的(使用Update())在这个阶段,脚本可以进行一些更新操作,例如移动游戏对象、每帧需要更新的逻辑在Update函数里调用。Start是在对象被第一次enable之后,在Update之前调用的,Start在脚本的生命周期中也只能被调用一次。而Start()是在对象的第一帧时被调用的,而且是在Update()之前。

2024-11-13 19:34:32 447

空空如也

空空如也

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

TA关注的人

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