
C#
AT巡礼
前一百篇,我会写一些比较容易理解,并且立马就能上手的代码,而且都会以代码和图片配合的形式写,让大家更好理解,如果觉得文章有用,点一下赞或者点一下关注。有任何问题都可以私信我,并且如果有需要我讲的一些其他的复杂的问题,也可以私信我,我会在未来几天安排,并且把这个问题以文章的形式写出来。
展开
-
关于C#BinaryReader类内部实现方法(扩展)
假设目前我有一个数组A = {11,22,33},数组B = {55,66,77}写入”假设目前我有一个数组A = {11,22,33},数组B = {55,66,77}写入“文件流和内存流存储的方式不一样,简单来说,文件流不会主动帮你存数组的长度,内存流会。这么说把,内存流内部实际存储的是3,11,22,33,3,55,66,77。这就是第二次调用了,获取的就是11(相当于数组[0])假设目前我有一个数组A = {11,22,33}此时我第一次调用获取方法的时候,只能获取A数组。我将他写入文件流中,原创 2023-06-26 15:32:30 · 632 阅读 · 0 评论 -
使用C#BinaryReader类
BinaryReader有两种流。原创 2023-06-26 15:08:50 · 632 阅读 · 0 评论 -
关于事件委托的一个简单原理版EventManager,自己学会解耦合,不再迷惑
我们要的需求,B脚本发送一个事件调用A脚本,并且可以传参(不需要你可以删除参数),并且A和B解耦,那就需要用到中介者模式。EventManager 的主要目的是将事件的定义和处理集中在一个地方,以便更容易地跟踪和管理事件。EventManager 是一种更通用的事件管理系统,通常用于在整个项目中管理和触发事件。EventManager 可以包含许多不同类型的事件,可以在项目的多个脚本之间共享。原创 2023-04-11 11:46:41 · 362 阅读 · 0 评论 -
关于PoolManager的创建以及清除对象池遇到的坑
我试了一个办法,先进行Despwan,再销毁,但是我发现报错和上面是一样的,也就是说Despwan是没用的,Pool还是会记录你的数据。最后,重新生成一个Pool,这样就不会出现报错了,我试过Pool.Clear(),不行,具体为什么,没时间去看了,我还要赶项目其他功能。当我们需要更换成预制体B的时候,我们想要清空预制体A,而不是简单的Despawn是Destory。此时你是不可以直接进行销毁的,因为Pool里面还存有你的预制体A的数据。接下来就是一些特俗情况,例如我们现在用的是预制体A。原创 2023-04-06 12:40:32 · 528 阅读 · 1 评论 -
unity的通过代码进行Inspector窗口编辑
10、[ContextMenuItem(“重置按钮”, “Test”)]9、 [TextArea(最少显示行数,最多显示行数)]11、[ContextMenu(“编辑器下直接执行方法”)]所谓序列化就是把一个对象保存到一个文件活数据库字段中去。5、 [Tooltip(“悬停说明”)]需要放在创建的类上,不能放在声明的类上。4、 [Header(“分组说明”)]8、 [Multiline(行数)]让私有的和保护的也可以被显示编辑。超出最多显示行数,显示滚动条。显示类也可以编辑类的属性。...原创 2022-08-30 10:35:48 · 1361 阅读 · 0 评论 -
关于unity,Player打包面板的信息(上)
1.《Icon》 图标:桌面上显示的游戏图标,可以用项目资源中的2D图像资源选中作为图标。2.《Resolution and Presentation》 分辨率和显示:屏幕分辨率和其他演示详细信息的设置。3.《Splash Image》 开屏图片:游戏启动时显示的图像。此部分还包括用于创建启动画面的常用设置。4.《Other Settings》 其他设置:平台特有的其他设置。5.《Publishing Settings》 发布设置:有关如何准备将构建的应用程序从应用商店或托管网页上进行发布的详细信.原创 2022-05-30 22:27:57 · 2673 阅读 · 1 评论 -
关于For循环的一个细节,变量i的值不对
今天做项目,发现了一个奇怪的现象代码如下 for (int i = 1; i < 2; i++) { Debug.LogError("测试1:" + i); transform.DOMove(Vector3.zero, 0.5f).OnComplete(() => { Debug.LogError("测试2:" + i); });原创 2022-03-25 11:22:49 · 1471 阅读 · 1 评论 -
关于unity3d调用安卓(androidstudio)回调的方法
正片直接开始:在开始前,我们需要声明几个类1:GameManager (游戏管理类,单例)2:WeDataController (中转站类,单例)【这样是为了,如果你有很多调用方法,可以把方法放到这里面同意管理】3:WeData_AndroidHelps (回调处理类,单例)【考虑到不少人对委托不太懂,我就把这个的细节代码也附上】4:WeData (用来处理和安卓的交互的类,单例)第一步:在GameManager创建一个方法(用来识别是什么平台在运行的,包括方便调用)原创 2022-03-10 14:18:15 · 7783 阅读 · 2 评论 -
GraphiIcs UI层级覆盖详细攻略
先跟着设置前面的Canvas和摄像机Camera以及菜单栏的Edit/perferences/Graphics首选介绍一下缘由:我们要做的是2D,毕竟是UI层级的渲染模式画布对应屏幕摄像机像素对应适合类型Screen Space-Overlay是不需要可选2D UIScreen Space-Camera是需要可选2D UIWorld Space否需要不可选3D UI至于摄像机的正交和透视,2D大多数都是用正交,就不用再多说了吧,因为不需原创 2021-04-14 14:44:41 · 687 阅读 · 2 评论 -
Spine动画如何才能不被UGUI遮挡
总所周知:3D的物体(包括3D场景内的Sprite)都是3D场景内的,所以它的一定会被UI遮挡住,那下面我们来说点解决方案。如何让Spine动画或者3D物体不被UI遮住。切能够层级分明:第一种方法在做2D界面的时候,默认我们的Canvas的摄像机模式是这样的这样的话,我们如果创建了UI全屏界面就一定会把3D物体遮挡了。OK,那我们切换一下Canvas的Render Mode的模式...原创 2019-11-11 16:39:57 · 3535 阅读 · 1 评论 -
基于UGUI的画板功能
我这里用到了Qframeworke插件。如果不用的话你可以直接删掉相关的代码就可以了。废话不多说,先上代码!using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;using QFramework;using QF.Res;/// <su...原创 2019-10-21 10:44:40 · 376 阅读 · 3 评论 -
正则表达式常用规则
1.判断十位数的格式正确与否string pattern_seven = @"^(((?<o>\()[-+]?([0-9]{1,2}[-+*/])*)+[0-9]{1,2}((?<-o>\))([-+*/][0-9]{1,2})*)+($|[-+*/]))*(?(o)(?!))$";//正则公式bool IsLegal = Regex.IsMatch("(" + Res...原创 2019-09-17 17:01:51 · 313 阅读 · 0 评论 -
全面解析C#构造函数 超详细 包括继承类时使用base方法
我们在写一个类的时候,会遇到构造函数这个问题。也许听起来很简单,但是不会用却是很头痛的一件事。本文全程配图首先我们定义一个类//刚创的QMsg类是这样的public class QMsg{}//但是实际上他是这样的public class QMsg{ public QMsg(){} // 这就是默认构造函数}QMsg这个类,那么QMsg里面会有一个你看不见的默认构造...原创 2019-07-12 15:01:34 · 1862 阅读 · 0 评论