- 博客(103)
- 收藏
- 关注
原创 C#——反射和特性
程序在运行时,可以查看其它程序集或其本身的元数据。一个运行的程序查看本身的元数据或者其他程序集的元数据的行为叫做反射。特性是一种允许我们向程序的程序集增加元数据的语言结构。它是用于保存程序结构信息的某种特殊类型的类。创建一个类并且必须以Attribute结尾,并且要继承Attribute,且是私有的不能被继承。程序是用来处理数据的,文本和特性都是数据,而我们程序本身这些也是数据。有关程序及其类型的数据被称为元数据,他们保存在程序的程序集中。用来获取和使用元数据的程序叫做特性的消费者。
2022-11-02 20:47:03
376
原创 C#——委托
Action是.NET Framework内置的泛型委托,可以使用Action委托以参数形式传递方法,而不用显示声明自定义的委托。使用多播委托就可以按照顺序调用多个方法,多播委托只能得到调用的最后一个方法的结果,一般我们把多播委托的返回类型声明为void。引用可在运行时被改变。定义了一个委托叫做 IntMethodInvoker ,这个委托可以指向带有一个int类型的参数,并且返回值是void的一个方法。在定义好委托后就可以实例化委托,命名方法委托在实例化委托时必须带入方法的具体名称或者是null。
2022-11-01 17:16:46
10066
原创 C#——字符串
5、使用类似索引器的语法来取得字符串中的某个字符 stringName[index] s[0] s[3]6.ToString() 把当前stringBuilder中存储的字符串。5.Replace() 在当前字符串中,用某个字符或者字符串全部替换为另一个字符或者字符串。4、字符串连接 s = "http://" + s;3、比较字符串是否一样 s == "abcd";1、创建字符串 string s = "abcdefg";2、获取字符串长度 s.Length();
2022-10-31 14:48:28
1374
原创 Unity——异步方法
异步方法和同步方法的区别 同步方法: 方法中逻辑执行完毕后,再继续执行后面的方法 异步方法: 方法中逻辑可能还没有执行完毕,就继续执行后面的内容 异步方法的本质: 往往异步方法当中都会使用多线程执行某部分逻辑 因为我们不需要等待方法中逻辑执行完毕就可以继续执行下面的逻辑了注:unity中的协同程序中的某些异步方法,有的使用的是多线程有的使用的是迭代
2022-06-03 23:13:35
6305
原创 Unity——心跳消息
心跳消息 在长连接中,客户端和服务端之间定期发送的一种特殊的数据包 用于通知对方自己还在线,以确保长连接的有效性 由于其发送的时间间隔往往是固定的持续的,就像是心跳一样一直存在 所以我们称之为心跳消息心跳消息的作用 1.避免非正常关闭客户端时,服务器无法正常收到关闭连接消息 通过心跳消息我们可以自定义超时判断,如果超时没有收到客户端消息,证明客户端已经 断开连接 2.避免客户端长期不发生消息,防火
2022-06-01 21:52:42
2178
1
原创 Unity——客户端主动断开
1.客户端尝试使用Disconnect方法主动断开连接 Socket当中有一个专门在客户端使用的方法(Disconect方法)客户端调用该方法和服务器端断开连接服务端: 1.收发消息时判断socket是否已经断开 2.处理删除记录的socket的相关逻辑(会用到线程锁)客户端: 主动断开连接2.自定义退出消息 让服务器收到该消息就知道是客户端想要主动断开 然后服务器处理释放socket
2022-05-31 21:15:52
2187
原创 Unity——分包、黏包
分包、黏包分包、黏包指在网络通讯中由于各种因素(网络环境、API规则等)造成的消息与消息之间出现的两种状态(注:分包和黏包可能同时发生)分包一个消息分成了多个消息进行发送 黏包一个消息和另外一个消息黏在了一起解决分包、黏包通过消息长度来判断一个消息有没有出现分包或者黏包为消息添加头部,头部记录消息的长度,当我们接收到消息时,通过消息长度来判断是...
2022-05-29 23:55:20
1578
原创 Unity——区分消息类型
发送自定义类的2进制信息1.进程BaseData类2.实现其中的序列化、反序列化、获取字节数等3.发送自定义类数据时,序列化4.接受自定义类数据时,反序列化区分消息为发送的消息添加标识,比如添加消息ID(类似于网络传输过程中的头文件)在所有发送的消息的头部加上消息ID举例说明: 消息构成 如果选用int类型作为消息ID的类型...
2022-05-28 23:14:38
337
原创 Unity——服务端和客户端
客户端实现服务端基本逻辑1.创建套接字Socket(TCP) Socket socketTcp = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);2.用Bind方法将套接字与本地地址绑定 try { IPEndPoint ipPoint =...
2022-05-26 00:09:25
2122
原创 Unity——Socket套接字TCP通信概述
服务端:1.创建套接字Socket2.用Bind方法将套接字与本地地址绑定3.用Listen方法监听4.用Accept方法等待客户端连接5.建立连接,Accept返回新套接字 6.用Send和Receive相关方法收发数据 7.用Shutdo...
2022-05-24 19:42:28
380
原创 Unity——Socket
Socket套接字的作用它是C#提供给我们用于网络通信的一个类(在其他语言当中也有对应的Socket类)类名:Socket命名空间:using System.Net.SocketsSocket套接字是支持TCP/IP网络通信的基本操作单位一个套接字对象包含1.本机的IP地址和端口2.对方主机的IP地址和端口...
2022-05-23 22:06:06
1971
原创 Unity——序列化和反序列化2进制数据
网络通信中传输的数据在网络通信中我们把想要传递的类对象信息序列化为2进制数据(一般为byte字节数组)再将该2进制数据通过网络传输给远端设备远端设备获取到该2进制数据后再将其反序列化为对应的类对象序列化和反序列化序列化:将类对象信息转换为可保存或传输的格式的过程反序列化:与序列化相对,将保存或传输过来的格...
2022-05-23 18:03:08
2219
原创 Unity——通信的IP地址和端口类
IP地址和端口类引用头文件using System.Net;IPAddress类初始化IP信息的方式 1.用byte数组进行初始化 byte[] ipAddress = new byte[] { 118, 102, 111, 11 }; IPAddress ip1 = new IPAddress(ipAddress);...
2022-05-22 23:52:37
2044
原创 Unity——网络游戏通信方案
目录弱联网和强联网游戏弱联网游戏 强联网游戏弱联网游戏代表强联网游戏代表长连接和短连接游戏 短连接游戏 通信特点 通信方式长连接游戏通信特点通信方式Socket、HTTP、FTPSocketHttp/Ht...
2022-05-22 16:53:30
3094
原创 Unity——网络协议
网络协议概述协议的字面意思:经过谈判、协商而制定的共同承认、共同遵守的文件 网络协议的基本概念:网络协议是计算机网络中进行数据交换而建立的规则、标准或约定的集合指的是计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合 如果你想要在网络环境中进行通信,那么网络协议就是你必须遵守的规则O...
2022-05-22 02:25:42
1728
原创 Unity——数据通信模型
目录分散式集中式优点 缺点分布式举列子C/S模型B/S模型P2P模型总结分散式:在分散式系统中,用户只负责管理自己的计算机系统,各自独立的系统之间没有资源或信息 的交换和共享。就类似一台台没有互联网的设备这种模式由于存在大量共享数据的重复存储,除了引起数据冗余之外,也容易导致一个组织 内各部门数据的不一致性。同...
2022-05-20 21:57:50
574
原创 Unity——客户端和服务器
目录客户端:名词角度解释含义客户端:客户端应用程序:基本概念:服务端: 名词角度解释含义: 服务端:服务端应用程序: 基本概念:网络游戏开发中的客户端和服务端 单机游戏: 网络游戏:网络游戏开发中的客户端:...
2022-05-20 19:21:20
3694
原创 Unity——IP、端口、Mac地址
目录IP地址基本概念IP地址分类按协议分类(目前常用的还是IPv4的规则)按使用范围分类 公网IP 私网IP端口号: 基本概念使用规则Mac地址 基本概念基本构成总结IP地址基本概念:IP地址是指互联...
2022-05-20 16:39:42
1555
原创 Unity——网络基本概念
目录网络的作用局域网以太网网络拓扑结构城域网广域网互联网(因特网)万维网总结网络是由若干设备和连接这些设备的链路构成各种设备 间接或者直接通过介质相连设备之间想要进行信息传递时将想要传递的数据编码为2进制数值便可以被有效的传输这些数据是以电脉冲的形式进行传输的线缆中的电压是在高低状态之间进行变化的因而...
2022-05-19 22:08:51
589
原创 Unity——DoTween插件
using DG.TweenDoTween的一些用法移动动画 //使得物体移动,第一个参数类型是Vector3,代表物体要移动到的世界坐标,第二个参数是移动到该位置所需要的时间 transform.DOMove(new Vector3(5, 9, 1), 6);//使得物体在x轴进行移动,第一个参数是移动到的x的位置,以自身坐标 transform.DOLocalMoveX(9, 7); //blend会对物体的运动进行一个累加.
2022-05-19 18:47:35
6508
原创 Unity——FariyGUI
1.创建新项目2.导入素材主工具栏测工具栏属性面板自定义字体将当前物体作为锚点新建动画将ui导入到Unity中并且初始化
2022-05-16 01:35:11
783
原创 数据结构——栈
栈: 是只允许在一端进行插入或删除操作的线性表特点:后进先出基本操作:InitStack(&S):初始化栈。构造一个空栈S,分配内存空间。DestroyStack(&L):销毁栈。销毁并释放栈S所占用的内存空间Push(&S,x):进栈,若栈S未满,则将x加入使之成为新栈顶Pop(&S,&x):出栈,若栈s非空,则弹出栈顶元素,并用x返回...
2022-04-20 16:51:26
1006
1
原创 数据结构——线性表
线性表定义:线性表是具有相同数据类型的n(n大于等于0)个数据元素的有限序列,其中n为表长,当n=0时线性表时一个空表。若用L命名线性表,则七一般标识为L = (a1,a2,...,ai,ai+1,...an)概念:ai是线性表中的“第i个”元素线性表中的为序a1是表头元素;an是表尾元素。除第一个元素外,每个元素有且仅有一个直接前驱;除最后一个元素外,每个元素有且仅有有一个直接后续线性表的基本操作:...
2022-04-18 22:22:02
1222
原创 数据结构——复杂度
算法的复杂度衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。时间复杂度(是个函数 )定义:一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。即:找到某条基本语句与问题规模N之间的数学表达式,就是算出了该算法的时间复杂度void Func1(int N) { int count = 0; for (int...
2022-04-16 16:39:47
1023
原创 Unity——外挂编辑器
特殊目录Plugins:需要跨语言调用的代码逻辑代码储存目录,手机SDK接入Resource:储存跟随游戏包的资源目录StreamingAssets:只读,存储跟游戏包的资源目录编辑目录:Editor制作多目录合并项目中建立的Editor目录,编辑器相关的逻辑和资源会放在其内部,相关内容,在打包生成时,不会一起生成到项目中,玩家也不会使用到编辑器相关的内容。//隐藏公共成员变量,同时保证脚本中变量的可访问度...
2022-04-08 13:22:53
2737
原创 Unity——MVC
MVCC:控制器,负责流程控制和事件响应V:视图,负责图形交互M:数据模型,负责数据处理MVC的开发步骤1.页面预制体的制作2.处理数据(数据模型脚本)JSON的读写操作数据的CURD操作 C:Create增加操作 U:Update...
2022-04-06 12:20:37
3705
原创 Unity——JSON
Json支持的数据结构数字型:short,int,long,float,double字符串:“abc”,“你好”,‘abc’布尔类型:true,falsenull:null数组(列表):[值1,值2]对象(字典):{"键1":"值1","键2":"值2"}字符含义大括号组:对象,字典中括号组:数组,列表冒号...
2022-03-30 22:05:01
9979
1
原创 Unity——摇杆的实现
1.先使所有图片达到下面图层结构bar代表遥感的外圈InBar代表摇杆的摇杆2.添加以下代码using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;public class DragController : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
2022-03-27 17:56:58
4065
原创 Unity——UGUI
Mask组件配合Image组件使用参数:没有子物体能显示时,是否显示父物体本图带有Mask组件的图,会显示子物体图片中,父物体图片Alpha通道不为0的部分Scroll组件 滚动模式: 无边界自由滚动 有边界带弹回效果(回弹系数) 有边界无回弹效果 拖拽惯性 ...
2022-03-27 15:46:59
2079
原创 Unity——Animaor动画系统
1.新建Animator Contrator文件AnyState:任意状态,常用于播放死亡状态,不管当前角色在播放什么状态,都可以被杀死然后播放死亡动作 Entry/Exit:进入状态机和退出状态机,进入状态机默认连接默认状态动画 这个选项更换默认动作 New State:默认状态,可以修改名字New State 0:一般状态,可以修改名...
2022-03-19 20:23:22
2504
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人