- 博客(38)
- 收藏
- 关注
原创 内置渲染管线和通用渲染管线的区别
允许开发者根据项目需求,通过脚本和相关API对渲染流程的各个阶段进行自定义,如插入自定义的渲染步骤、添加自定义的后处理效果等。通用渲染管线:虽然不像高清渲染管线(HDRP)那样专注于极致画质,但也能提供比内置渲染管线更丰富的光影效果和更高的画面质量,内置渲染管线:能实现基础的光影效果和后处理效果,但在高端光影效果,如光线追踪、复杂的全局光照等方面支持有限,但自定义选项相对有限,渲染次序基本是固定的,通用渲染管线:注重性能优化,在各种平台上,尤其是移动端和低端机器上,能提供更高效的渲染性能。
2025-02-05 14:35:29
246
原创 判断输入的字符串是否是回文串
回文串是指从左到右读和从右到左读都一样的字符串,即字符串正序和逆序完全相同。例如,“racecar”“level”“12321”“上海自来水来自海上” 等都是回文串,忽略空格、标点符号和大小写后,它们的正向和反向字符排列完全一致。判断输入的字符串是否是回文串。
2025-02-05 12:01:59
169
原创 AssetBundle
这个对象完整保留了当初添加到压缩包内的所有内容,在游戏运行过程中,开发人员能够通过这个对象将所需内容加载出来并加以使用,实现灵活的资源管理与调用。serialized file(序列化文件):将资源拆解后整合在一个对象中,最终统一写入一个单独的文件,整个AssetBundle。resource files(源文件):像图片、声音这类二进制资源,会被单独保存,这样的设计便于快速加载,提高资源调用效率。,它能够容纳模型、贴图、预制体、声音,甚至整个场景,,提升游戏资源的加载效率。
2025-02-04 14:29:29
217
原创 隐式类型转换和显示类型转换
赋值的时候,两边类型是需要⼀致的,如果不⼀致的话,就需要转换类型。进⾏转换,叫做隐式转换。有些情况下,需要我们告诉编译器进行类型转换,叫做显示转换,也。叫做强制类型转换,强塞。
2025-01-18 10:41:35
146
原创 Reset()函数
把脚本挂载给游戏对象或者点击reset时,会进行打印。如果不在编辑状态下,则不会调用reset函数。定义并初始化 a,在引擎中更改a的值,再点击reset,会使a的值变为30。
2024-11-04 18:50:20
300
1
原创 单例模式的概念和用处
定义:单例模式可以确保一个类只有一个实例,并且提供一个访问它的全局访问点。这种模式通常用于那些需要频繁创建和销毁的对象,或者是作为系统配置、数据库连接等资源管理器的情况,以减少资源消耗并确保程序的一致性。请设计一个类,这个类不管在任何地方执行任何代码,不管执行多少次代码,要求这个类的对象在内存中只有。在普通模式下,方法循环五次,每次HashCode不同,代表不是同一个对象;在单例模式下,方法循环五次,每次HashCode相同,代表是同一个对象;
2024-11-04 15:36:01
430
原创 键值对和哈希冲突以及解决办法
这个整数对应着哈希桶的索引,由于输入是无线的,而输出的整数是有限的,会导致经过哈希运算得到相同的整数,索引相同,指向了同一个位置,这就是哈希冲突。用红黑树替换链表,因为链表查找慢,冲突过多时,不合适。存储数据时,key经过哈希运算得到一个。
2024-11-02 20:42:51
235
原创 装箱和拆箱
这是一个装箱的过程,把基本数据类型的数据转化为“类”类型的数据,反过来就是拆箱的过程。拆箱装箱涉及数据拷贝,应尽量减少拆箱装箱的次数,减少内存消耗。
2024-11-02 20:35:06
117
原创 对象池的作用以及简单示例
把对象放在一个集合里,通过集合来管理对象,不用对象的时候不要删除对象,而是放到集合里;需要对象时,先在集合里找是否有该对象,有直接使用,没有创建后使用。在游戏当中,有很多时候需要重复地创建或删除某些游戏对象,此时会耗费系统资源,从而影响性能,利用。通过按鼠标左右键来在场景中进行游戏对象的删除和创建,但实际上,并不是真正的删除,对象池能够节省内存,优化程序流畅程度。1、将一个游戏对象制作成预制体。2、创建一个空游戏对象并挂载脚本。按鼠标右键,会删除一个游戏对象。按鼠标左键,会创建一个游戏对象;
2024-11-02 15:49:04
575
原创 异常处理基础
在执行try语句中的代码时发生异常,程序流程将会立即跳转到catch语句,执行catch语句中的代码,而不是显示晦涩难懂的消息。可以得出结论:finally代码块总是会执行。finally语句块中的代码总是会执行。将异常作为参数传递进来。
2024-09-20 16:59:34
280
原创 static限定符
line 类中的 orign 成员被声明为 static ,这意味着它是类级别的成员,不是实例级别的成员。因此,所有的line类实例共享同一个orign成员。当删除static 关键字时会报错,这是因为试图在一个实例方法(Main方法)中访问一个非静态(实例成员)时,而这个成员却在类级别上被引用了。
2024-09-11 15:49:23
442
原创 显示数据类型转换和隐式数据类型转换的区别
2.隐式类型转换是由编译器自动完成的类型转换,不需要程序员显式地指定。隐式数据类型转换通常用于。1.显式类型转换时是指程序员明确指定将一个数据类型转换为另一种数据类型,,可能导致精度损失或者数据溢出。,这样可以避免数据丢失。
2024-08-31 19:10:00
243
原创 Decimal
这是因为 C# 中有多种数值类型,如果不加后缀,默认的数值字面值会被解释为。后缀用于标识一个数值字面值为。的范围,编译器会将其解释为。
2024-08-31 18:34:15
136
原创 Unity中的协程
开启协程时用"CountCo" ,停止协程时也要用 "CountCo"。2.可以等待任何一个返回值类型为IEnumerator的函数。等待协程 CountCo()执行完再执行协程Start()开启协程时用 e ,停止协程时也要用 e。把 co 的值传递给停止协程的方法。1.Start()方法可以采用协程形式。协程不是多线程,而是类似函数调用。:让程序并行执行的功能。
2024-08-29 16:50:54
2683
原创 Unity新输入系统配置方法
此时应添加using UnityEngine.InputSystem ,并且删去使用旧输入系统的代码(getAxis)1.设置动作类型和控制类型,WSAD键的移动,使玩家在水平面内移动,是一个二维向量。6.同时使用新输入系统和旧输入系统会出现错误,导致玩家无法完成跳跃动作。3.绑定鼠标和手柄的方向键,保存所有配置。5.点击应用后,会出现一个脚本。Jump是一个button。2.绑定键盘的WSAD。4.勾选蓝色字体部分。
2024-08-25 18:03:32
573
原创 Uinty中的CharacterController
用于处理第一人称、第三人称的游戏,处理角色的移动与环境的碰撞,它不像物理刚体那样受力学计算影响,而是基于碰撞盒进行运动;本身不受重力,但开发者可以手动添加重力效果;可以处理角色在斜坡和阶梯上的运动,确保角色在这些地形上不会滑动或卡住。2.CharacterController没有刚体,意味着不能进行和物理有关的活动。物理活动由代码控制。
2024-08-24 19:26:42
275
原创 C#引用类型和值类型
值类型变量的容器直接存储变量的值,因此当使用值类型变量进行赋值时,计算机总是会进行实例赋值;而如果使用引用类型的变量,则此变量的容器中存储的是对于一个对象的引用,而这个对象内部可能还存储了值类型或引用类型,使用引用类型进行赋值时,也只会复制这个引用,整个对象不会被进行复制。1.引用类型的容器里存放的是一个引用,类似于指针,指向一个地址。C#中一个典型的引用类型就是类。
2024-08-24 11:16:45
752
原创 变量三要素
变量可进行多次声明(声名时没有容器),但是只能进行一次定义(有容器),对变量进行定义时,会分配内存。把内容100放在a(名称)所在的容器里。变量三要素:容器,名称,内容。容器是一块内存,可以放任何内容。赋值:为容器提供内容。
2024-08-22 21:01:04
186
原创 Unity基础
3.空物体本身并不具有颜色和形状,为了使空物体具有具体的颜色和形状,就需要给空物体添加材质与网格。网格决定物体的形状,材质决定物体的外观。4.视角矩形:可以在游戏中有两个视角,可用于双人游戏。通过设置Viewport Rect改变两个视角的数据。1.右键Ttransform,点Reset,可以将空物体位置回归世界坐标系的中心。5.不同的游戏场景和编号。(File->Build Settings)网格过滤器 + 网格渲染器 + 碰撞盒 = 不同形体。Mesh Renderer:网格渲染器。
2024-08-22 19:45:53
205
原创 unity编辑器视图
2.子物体位置的移动不会影响父物体的位置,父物体位置的移动会影响子物体的位置。父物体在世界坐标系中,子物体在局部坐标系中。4.在一个场景中打开和关闭另一个场景的方法。1.在Game视图中选择这个,可以全屏播放。
2024-08-22 18:13:29
512
原创 unity编辑器给对象添加材质
MyTank是一个空对象,cube是子对象,若想给MyTank添加材质,只能分别给三个子对象添加材质,要确认三个子对象具有Mesh Render 或Sprite Render组件。
2024-08-21 21:36:18
328
原创 【无标题】
2.运行后无法弹出howtoplay窗口,可能是因为两个窗口的位置不一样,也可能是因为动画设置错误。1.不能直接使用预制体,预制体要拖进层级窗口中,否则不能使用setactive方法改变状态。3.添加点击事件要挂载脚本,拖入对象。
2024-08-21 15:52:16
199
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人