- 博客(37)
- 收藏
- 关注
原创 Unity学习---IL2CPP打包时可能遇到的问题
在这种情况下一般我们把Managed Stripping Level设置为High,然后看一下报错的提示,往link.wxl文件中添加要保留的东西即可。IL2CPP打包后会自动对Unity工程的dll进行裁剪,将代码中没有引用到的类型裁剪掉。特别是通过反射等方式调用一些类的时候,很容易出问题。解决方法:创建一个类,在这个类中声明你要用到的泛型类(public),或者调用一次你要用的泛型方法。其实问题本质我感觉和裁剪是一样的,就是一些泛型类没有被声明过,就会被裁剪掉。
2024-11-14 20:02:43
1501
原创 网络学习笔记---客户端和服务端
服务端:往往运行在一台远端的计算机上,客户端和服务端通过网络进行通讯,服务端为客户端提供各种服务。客户端:用户在设备上运行使用的应用程序。
2024-11-05 23:03:57
207
原创 网络学习笔记---IP、端口、Mac地址
Mac地址=设备进行网络通信的唯一标识,设备真正进行物理传输用来定位的表示。(可以理解为IP地址和端口是逻辑上用来找目标的,而Mac是实际通过网线传数据的时候的目标)在网络通信中,我们通过IP地址和端口号定位想要通信的远端计算机中的某个应用程序。IP地址=朋友住在某街某小区某栋楼(设备在外网中的位置)在网络上寻找一台指定设备可以类比现实中去朋友家串门。端口地址=朋友具体住的门牌号(具体哪个应用程序)
2024-11-04 00:00:19
283
原创 lua学习笔记---面向对象
是一个表,Lua 会在该表中查找键。这允许我们定义一个“类”的属性和方法,然后让所有实例共享这些属性和方法,从而实现封装。当你尝试访问一个表的属性或方法时,如果该表没有这个属性或方法,Lua 会查看该表的元表的。是另一个表,Lua 会在那个表中查找属性或方法,这个过程会一直进行,直到找到属性或方法,或者。这可以用来控制对属性的赋值行为,例如,可以在这里添加日志记录或者验证逻辑。:当尝试给一个不存在的键赋值时,Lua 会查找元表的。:当尝试访问一个不存在的键时,Lua 会查找元表的。
2024-11-03 16:19:09
584
原创 Lua中string相关方法(不是讲解,只是记录一下自己学习Lua的时候的示例代码)
【代码】Lua中string相关方法(不是讲解,只是记录一下自己学习Lua的时候的示例代码)
2024-10-28 21:07:53
161
原创 Leetcode48.旋转图像
这题最容易想到的暴力解法是每次四个数为一组进行交换,这个大家应该都会,我就不写了。翻转,就顺时针旋转90度了(也不知道哪个b想出来的这种办法)通过观察我们可以发现,如果把每个数先沿对角线翻转,再左右。旋转图像,这意味着你需要直接修改输入的二维矩阵。请你将图像顺时针旋转 90 度。还有一种脑筋急转弯式的解法。使用另一个矩阵来旋转图像。
2024-10-04 10:49:13
271
原创 LeetCode443.压缩字符串(C#)
如果x>1,那么将后面的x-1个字符替换为数字x-1的字符表示。当x=2时,x-1=1,压缩后字符串长度不变,当x>2时,数字x-1的位数显然小于x-1,压缩后字符串长度小于原字符串。注意这里把数字部分转换成字符的代码,如果直接使用ToString()方法,空间复杂度会是O(n),只不过这题的数据量不大,所以差别不明显。返回 6 ,输入数组的前 6 个字符应该是:["a","2","b","2","c","3"]返回 4 ,输入数组的前 4 个字符应该是:["a","b","1","2"]。
2024-09-22 13:36:42
447
原创 LeetCode334.递增的三元子序列(C#)
假设 (first,second,num) 是一个递增的三元子序列,如果存在 second’ 满足 first<second’<second 且 second’ 的下标位于 first 的下标和 num 的下标之间,则 (first,second’,num) 也是一个递增的三元子序列。遍历nums数组,令third=nums[i],如果third>second,返回true,否则,如果third>first,令second=third,否则,令first=third。的解决方案,可以采用贪心的解法。
2024-09-21 14:42:22
421
原创 LeetCode151.反转字符串中的数字(C#)
中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。由于C#中的字符串不是可变数据类型,所以我们无法实现空间复杂度为O(1)的解法。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。如果字符串在你使用的编程语言中是一种可变数据类型,请尝试使用。所以主要考察的其实是对字符串的操作的熟悉程度,思路并不难。反转后的字符串中不能存在前导空格和尾随空格。中使用至少一个空格将字符串中的。之间用单个空格连接的结果字符串。
2024-09-19 18:59:43
227
原创 Leetcode42.接雨水(C#)
如果已经知道每个位置两边的最大高度,则可以在 O(n) 的时间内得到能接的雨水总量。使用动态规划的方法,可以在 O(n) 的时间内预处理得到每个位置两边的最大高度。状态转移方程为left[i]=max(left[i-1],height[i])。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。如果对每根柱子都向两边遍历,那么时间复杂度为O(n^2)。
2024-09-16 20:09:27
428
原创 LeetCode135.分发糖果(C#)
先从左边遍历一次,如果ratings[i]>ratings[i-1],那么第i个小孩的糖果比i-1个小孩多一个,否则这个小孩糖果数量为1。那么这个逻辑可以表示为if(ratings[i]>ratings[i-1])left[i]=left[i-1]+1;依题意:“相邻两个孩子评分更高的孩子会获得更多的糖果”。你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。你可以分别给第一个、第二个、第三个孩子分发 1、2、1 颗糖果。第三个孩子只得到 1 颗糖果,这满足题面中的两个条件。
2024-09-15 20:24:39
597
原创 Unity的Android打包相关(傻子也能懂版本)
然后再File-->Build Setting中把平台换成Android,点击Switch Platform(图中“Build“的位置,我已经切换好平台了),最后点击“Build”按钮即可打包。创建Unity项目,在Edit-->Preference中找到External Tools。因为需要Android打包,我们还需要安装Android环境。随便选一个版本“从Unity Hub下载”。在Unity官网,选择长期支持版本。1.先下个UnityHub。2.打开UnityHub。接下来是打包apk。
2024-09-13 20:49:51
661
原创 LeetCode134.加油站(C#)
而直接从k点起步,起始油量为零,那么到j点的剩余油量一定小于从i点起步到j点,而从i开始到j的剩余油量不支持继续跑,所以i和j之间的任意的k点也都不用考虑了,下一次就可以直接从j+1开始找。你无法返回 2 号加油站,因为返程需要消耗 4 升汽油,但是你的油箱只有 3 升汽油。开往 3 号加油站,你需要消耗 5 升汽油,正好足够你返回到 3 号加油站。如果从i起步最远可以跑到j,那么从i到j之间的任意点k要跑到j是不可能的。开往 1 号加油站,此时油箱有 3 - 3 + 3 = 3 升汽油。
2024-09-13 20:34:21
436
原创 LeetCode2181.合并零之间的点(C#)
请你将它们之间的所有节点合并成一个节点,其值是所有已合并节点的值之和。- 标记为红色的节点之和:4 + 5 + 2 = 11。超级简单,是可以直接遍历然后做出来的。好久没写,今天终于复活了。- 标记为绿色的节点之和:3 + 1 = 4。- 标记为黄色的节点之和:2 + 2 = 4。上图表示输入的链表。上图表示输入的链表。移除,修改后的链表不应该含有任何。- 标记为绿色的节点之和:1 = 1。- 标记为红色的节点之和:3 = 3。分隔开的一连串整数。返回修改后链表的头节点。给你一个链表的头节点。
2024-09-09 19:17:40
268
原创 leetcode--45.跳跃游戏||
从下标为 0 跳到下标为 1 的位置,跳。向前跳转的最大长度。生成的测试用例可以到达。跳到最后一个位置的最小跳跃数是。步到达数组的最后一个位置。处,你可以跳转到任意。
2024-09-09 13:03:04
368
原创 Unity学习笔记---多线程相关
由于副线程无法访问Unity对象,所以在其中一般进行的是计算或者接收消息之类的操作,然后把结果放置到可访问的公共容器供主线程使用。不能直接调用,通过Unity提供的StartCoroutine()方法来开启协程函数,参数是一个IEnumerator类的示例,一般来说就是你申明的协程函数。要这样做的原因是因为Unity本身也是一个软件,在编辑器模式下使用多线程,就算停止调试,Unity仍然在运行,所以不手动关闭的话线程不会停止。Unity支持多线程,但是,主线程之外的线程无法访问Unity相关对象内容。
2024-07-01 18:38:11
766
原创 Unity学习笔记---使用Mathf的线性插值实现物体跟随
可以看出x显然随时间线性增长,y=(10-start)*x+start,因为这里并没有每帧更新start,所以start是常量,所以y是关于x的一次函数,线性增长。因为start每帧更新,所以当start接近与10的时候,每一帧的变化会越来越小。每一帧都改变start,即每一帧都令start=start+(10-start)*t。每帧改变start的值,那么变化速度先快后慢,与第二个参数的差最终会无限趋近于0。例如:每一帧都执行:start=Mathf.Lerp(start,10,t)
2024-06-30 00:14:38
468
原创 Unity学习笔记---PlayerPrefs基本方法
注意:直接调用set相关方法,只会把数据存到内存中。所以,如果游戏崩溃,数据会丢失。注意:运行时,即便没有Save保存到硬盘,只要set了数据,就可以读取信息了。PlayerPrefs.DeleteKey(),参数为键名,删除指定键的数据。想要立刻存到硬盘中,可以调用PlayerPrefs.Save()方法。PlayerPrefs的数据存储类似于键值对存储,一个键对应一个值。提供了存储三种数据的方法:int、float、string。注意:如果同一键名进行存储,会进行覆盖。局限性:只能存三种类型数据。
2024-06-23 21:42:00
678
原创 Unity学习笔记----摄像机组件信息相关知识点总结
(3)Physical Camera 物理摄像机,勾选以后可以模拟真实世界中的摄像机。焦距,传感器尺寸,透镜移位等。(我不怎么用,所以不太会,有需要可以直接去官网查文档)选择性渲染部分层级,可以指定渲染对应层级的对象。Sensor Type---传感器类型。Sensor Size---传感器尺寸。Lens Shift---透镜移位。Near---距离小于这个就无法被渲染,默认0.3。Far---距离超出这个就无法渲染,默认1000。Gate Fit---闸门配合。Focal---焦距。
2024-06-16 20:20:28
1084
原创 Unity学习笔记————Time相关知识点
在edit--->Project Setting--->Time--->Fixed Timestep中可以设置物理帧间隔时间,默认0.02秒。不受scale影响:Time.fixedUnscaleDeltaTime。不受scale影响:Time.unscaleDeltaTime。受scale影响:Time.fixedDeltaTime。不受scale影响:Time.unscaleTime。受scale影响:Time.deltaTime。受scale影响:Time.time。三.游戏开始到现在的时间。
2024-06-15 20:14:28
595
原创 Unity的生命周期函数
Unity帮助使用者记录了场景中所有GameObject对象以及各个关联的脚本对象,在游戏执行的特定时期,通过函数名反射(C#的反射机制)得到脚本对象中的对应生命周期函数,然后在特定时机执行它们。生命周期函数并不是基类中的成员,为什么Unity可以自动执行这些函数?
2024-06-14 23:56:19
1740
原创 C#中的值和引用类型
当语句块执行结束,没有被记录的对象将被自动回收或变成垃圾,待下次GC回收。引用类型:变成垃圾,下次GC回收。类中的值和引用,具体的值都存储在堆中。只要记住:引用类型始终存储在堆中。引用类型:string,class,interface,数组,委托。可以f12进到类型内部,是class就是引用,是struct就是值。值类型数组,堆中空间存具体内容;引用类型数组,堆中空间存地址。变量申明:上层:成员变量,中、底层:临时变量。在结构体中的值,栈中存储值具体的内容。结构体中的引用,堆中存储引用具体内容。
2024-06-14 23:36:25
257
原创 C#学习笔记---特殊语法
安全获取可空类型:GetValueOrDefault(),参数可以传值,但并不会把值赋给变量。var是一种特殊的变量类型,能表示任意类型的变量。(偷懒用/当不确定类型时用来装载变量)申明对象时,可以直接写大括号的形式初始化公共成员变量和属性。1.var不能作为类的成员 只用于临时变量申明,一般写在函数语句块。如果左边为空,返回右边,否则返回左边。只要是可以为null的类型都能用。var可以申明为自定义的匿名类型。让字符串中可以拼接变量。学C#的时候顺手写的。2.var必须初始化。可以配合可空类型使用。
2024-06-14 20:05:38
333
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅