- 博客(32)
- 资源 (1)
- 收藏
- 关注
转载 3.2、强大的MongoBson库(ETBook)
后端开发,统计了一下大概有这些场景需要用到序列化:对象通过序列化反序列化clone 服务端数据库存储数据,二进制 分布式服务端,多进程间的消息,二进制 后端日志,文本格式 服务端的各种配置文件,文本格式C#序列化库有非常非常多了,protobuf,json等等。但是这些序列化库都无法应当所有场景,既要可读又要小。protobuf不支持复杂的对象结构(无法使用继承),做消息合适,做数据...
2019-02-15 11:50:29
1123
1
转载 2.3、单线程异步(ETBook)
前面几个例子都是多线程实现的异步,但是异步显然不仅仅是多线程的。我们在之前的例子中使用了Sleep来实现时间的等待,每一个计时器都需要使用一个线程,会导致线程切换频繁,这个实现效率很低,平常是不会这样做的。一般游戏逻辑中会设计一个单线程的计时器,我们这里做一个简单的实现,用来讲解单线程异步。 // example2_3 class Program { p...
2019-02-15 11:49:28
525
2
转载 2.2、更好的协程(ETBook)
上文讲了一串回调就是协程,显然这样写代码,增加逻辑,插入逻辑非常容易出错。我们需要利用异步语法把这个异步回调的形式改成同步的形式,幸好C#已经帮我们设计好了,看代码 // example2_2 class Program { private static int loopCount = 0; static void Ma...
2019-02-15 11:48:38
296
1
转载 2.1、CSharp的协程(ETBook)
说到协程,我们先了解什么是异步,异步简单说来就是,我要发起一个调用,但是这个被调用方(可能是其它线程,也可能是IO)出结果需要一段时间,我不想让这个调用阻塞住调用方的整个线程,因此传给被调用方一个回调函数,被调用方运行完成后回调这个回调函数就能通知调用方继续往下执行。举个例子:下面的代码,主线程一直循环,每循环一次sleep 1毫秒,计数加一,每10000次打印一次。 pri...
2019-02-15 11:47:08
1013
1
转载 1、为什么使用C# .net core做服务端?(ETBook)
游戏服务端从早期的单服到分布式,开发越来越复杂,对稳定性,开发效率要求越来越高。开发语言的选择也逐步发生了变化,C 到 C++ 到 C++ + PYTHON 或者C++ + LUA 到现在 很多公司开始使用erlang,go,java,c#。目前是一个百花齐放的局面。但是如果是要你重新做一个网游server,不考虑对公司或者已有的东西兼容性,你会怎么选择?我仔细想了一下这个问题,大概有这个几个...
2019-02-15 11:45:37
6043
1
原创 优化——简易的地图优化
最近需要去做下地图的优化(优化就是减低DC),写了个练手的优化方案,没有通过,因为不够灵活,而且优化程度没有九宫格划分来的地图优化来的好,所以最后就取消了。这里我就将我写的简易的优化发上来,大家看看还有什么需要改进的。优化的想法是,以玩家作为中心画一个圈。大于这个圈的就消失,在里面的就显示。每五秒调用下这个方法。这样就能减少很多DC。这里我贴出我的代码,还在测试的,没有完全实现这个优化的想...
2019-01-16 20:41:37
706
原创 FGUI,UGUI在ET框架上的使用以及区别
这两天把FGUI差不多学完了,今天看了点ET框架,发现如何在ET上使用FGUI的文档很少很少。就自己根据初见大佬的ET4.0的斗地主,他的一篇在ET上如何使用FGUI,和同事自己写好的一些界面,了解了下如何在ET框架上使用FGUI。下面将带大家看看:首先得导入FGUI的方法如这种这个自己没发现是自己写的还是ET上的还是FGUI里面的。然后就是要去建立两个类,一个工厂类和一个组件类我...
2018-11-29 20:33:45
5475
原创 FGUI的触碰事件
滑动手势事件,可以通过OnBegin+OnMove+OnEnd来关心滑动的结果,也可以通过OnAction来得到结果,结果有角度和方向SwipeGesture gesture1 = new SwipeGesture(holder);gesture1.onMove.Add(OnSwipeMove);gesture1.onEnd.Add(OnSwipeEnd); void OnSw...
2018-11-29 19:43:05
4494
原创 FGUI列表的一些方法
_list.SetVirtual(); 将列表虚拟化,(不会为每一条数据都实例化,根据视口大小创建最小量的显示对象)必须通过_list.itemRenderer回调函数,设置列表数据。 在滑动列表的时候,可以用一下这段代码来实现,距离的把控,显示最近的。void DoSpecialEffect(){//change the scale according to the dist...
2018-11-29 16:42:31
6195
原创 FGUI动画类的一些方法的使用
UIPackage.AddPackage("UI/Extension"); 加载Resources下的文件GComponent _mainView; 为当前的组件GGroup _btnGroup; 在fgui上建好的一个组,里面是多种按钮文件之类的Stage.inst.onKeyDown.Add(OnKeyDown); 在图集上添加一个响应事件_mainView = this.Ge...
2018-11-27 21:32:49
7118
原创 FairyGUI学习文档1
目前大概的看了下FGUI,因为以前用的都是UGUI,现在公司要用FGUI,所以加紧学习一下。最开始,还是推荐去看下菜鸟教程,和网上的初步教程比如siki的视频:http://www.sikiedu.com/course/139然后就是FGUI的官网:http://www.fairygui.com/里面有很多的例子和介绍及api。下面说说自己的学习步骤:因为学FGUI主要是用到u...
2018-11-26 20:54:23
2768
原创 谈一些最近的面试,遇到的问题,以后尽量避免!
最近啊!在找工作,Unity前端,真的有点难,不是说自己水平不够,而是这里压根就不给你去面试的机会。只能说找工作真的有点难啊!!好了不多啰嗦了。开始正题!面试的时候一定不能紧张,也不是不能,就是尽量不那么紧张。在进面试公司之前,感觉到自己很紧张就深呼几口气。我是这样的,上次去面试,深呼了几口气,就没那么紧张了做面试题的时候一定要认真仔细的写,写完之后再写一遍,觉得没问题后再给HR。有些不会...
2018-10-25 17:06:35
198
原创 Unity中jdk+sdk的安装+APK的发布
这两天,在弄发布APK,装了下jdk和sdk,jdk安装下去倒是没什么问题,但是安装sdk的时候却装了好多遍都错误,还下载了几十G的资源,就很烦躁。每次都报下面这个错误,但是我安装的还是最新版的sdk,还报这个错误,重新下载25.0.0的版本也会报这个错误,最后发现只要点击下面的Use highest Installed就可以一样的发布APK项目。下面就是重点,从jdk到sdk的安装。...
2018-09-13 10:48:23
17952
3
原创 AssetBundle中的资源加载方法
AssetBundle中的资源加载有两种,分别是从本地加载,一种是访问服务器进行加载,目前Unity中可以把两个整合到一起,只用该少量的代码就能实现从本地加载,到访问服务器来对资源的加载。下面介绍的就是这种。 IEnumerator LoadFromUnityWebRequest() { //从本地 string url = @"file:///D:\...
2018-09-13 09:57:45
251
转载 C# Delegate和Control中 Invoke和BeginInvoke的区别
Invoke是控件Control的成员方法,函数有两个重载版本: Invoke(Delegate) 在拥有此控件的基础窗口句柄的线程上执行指定的委托。Invoke(Delegate, object[]) 在拥有控件的基础窗口句柄的线程上,用指定的参数列表执行指定委托。第一个版本用于Invoke不带参数的委托,第二个版本用于Invoke带参数的委托,没有实质的区别。Invoke ...
2018-08-28 11:18:53
4080
转载 Unity面试题
一.什么是渲染管道?是指在显示器上为了显示出图像而经过的一系列必要操作。渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到另一个坐标系中去。主要步骤有:本地坐标->视图坐标->背面裁剪->光照->裁剪->投影->视图变换->光栅化。二.如何优化内存?有很多种方式,例如1.压缩自带类库;2.将暂时不用的以后还需要使用的物体隐藏起...
2018-08-28 11:10:42
511
1
原创 单链表
12345678单链表:从第一个节点连接到后一个节点,靠线连接,知道最后一个节点连接到null。增加:往最后一个节点之后连接一个新的节点,这个节点后面为null插入:分两种,1,插在头节点,就头节点往后移一位。2,插在中间,比如插在3,4中间,就在3.next为要插入的,然后插入的连接上4。删除:把6号删除,就是6除去,5连接到7.跟顺序表中一样先定义一个接口,把所有要实现的方法,放入,这里就不写...
2018-07-16 14:57:22
141
原创 事件和委托
什么是委托? 如果我们要把方法当做参数来传递的话,就要用到委托。简单来说委托是一个类型,这个类型可以赋值一个方法的引用。在C#中使用一个类分两个阶段,首选定义这个类,告诉编译器这个类由什么字段和方法组成的,然后使用这个类实例化对象。在我们使用委托的时候,也需要经过这两个阶段,首先定义委托,告诉编译器我们这个委托可以指向哪些类型的方法,然后,创建该委托的实例。定义委托的语法如下: delegate ...
2018-07-16 14:56:06
149
原创 C#对雇员工资进行排序升级版
这里是要写一个对雇员的工资进行排序,但是为了以后能通过同一个方法就可以对不同的类型进行排序,就举了一个雇员类的方法,以供参考。这里用了泛型,Func委托,冒泡排序这里是对雇员类的定义 class Employee { private string name; private int sole;//出售 public string Name ...
2018-07-06 17:21:10
581
原创 C#正则表达式
什么是正则表达式?英文Regular Expression,是计算机科学的一个重要概念,她使用一种数学算法来解决计算机程序中的文本检索,匹配等问题,正则表达式语言是一种专门用于字符串处理的语言。在很多语言中都提供了对它的支持,c#也不例外,它可以帮我们解决下面的问题: 1,检索:通过正则表达式,从字符串中获取我们想要的部分 2,匹配:判断给定的字符串是否符合正则表达式的过滤逻辑你可以认...
2018-07-05 19:58:13
693
1
原创 C#中列表的插入删除等的一些相关知识
1,创建列表(列表可以存储任何类型的数据,在创建列表对象的时候首先要指定你要创建的这个列表要存储什么类型的)(泛型) List<int> scoreList = new List<int>(); new List<int>(){1,2,3} new List<string>(){"one","two"} var scoreList = new...
2018-07-05 19:49:15
939
原创 C#面向对象的编程题
C#面向对象编程-练习题 这是一些基础的继承,重写,抽象类的编程题1.C#中的方法重写使用关键字(A)。a) overrideb) overloadc) staticd) Inherit2.以下的C#代码,试图用来定义一个接口:public interface IFile{ int A; int delFile() { A = 3; } void disFile();}关于以上的代码,以下描述错...
2018-07-05 19:46:21
5536
原创 C# 简易版商品管理系统
在这里,写了一个巨简单的商品管理系统,只有一个添加和查看,只是为了给自己练手的! * 商品id 名字 数量 价格 * 1001 苹果 100 1 * 1002 乐事薯片 20 2 * 简易版商品管理系统: * 提示:最多不超过5种商品(水果,厨具,饼干等等) * 输入1,进行添加...
2018-07-05 19:39:47
4819
原创 C#继承中的一些概念
面向对象编程也叫做OOP编程面向对象编程就是结构化编程,对程序中的变量结构划分,让编程更清晰。类实际上是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法。类定义了类的每个对象(称为实例)可以包含什么数据和功能。类中的数据和函数称为类的成员 数据成员 函数成员数据成员: 数据成员是包含类的数据--字段,常量和事件的成员。函数成员: 函数成员提供了操作类中数据的某些功能。(方法,属性,...
2018-06-26 20:04:03
237
原创 C#面向对象中的一些概念
面向对象编程也叫做OOP编程面向对象编程就是结构化编程,对程序中的变量结构划分,让编程更清晰。类实际上是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法。类定义了类的每个对象(称为实例)可以包含什么数据和功能。类中的数据和函数称为类的成员 数据成员 函数成员数据成员: 数据成员是包含类的数据--字段,常量和事件的成员。函数成员: 函数成员提供了操作类中数据的某些功能。(方法,属性,...
2018-06-26 20:03:02
613
原创 用for语句写的一些题目
1.打印1-100中所有能被7和9整除的数 Console.WriteLine("1.打印1-100中所有能被7和9整除的数:"); for(int i = 1; i <= 100; i++) { if(i%7 == 0 && i%9 == 0) { ...
2018-06-26 20:01:30
595
原创 菱形和空心菱形
Console.WriteLine("please input one number"); int n = Convert.ToInt32(Console.ReadLine()); for (int a = 1; a <= n; a++) { //Math.Abs 为求绝对值 ...
2018-06-26 19:57:39
800
原创 用二维数组进行学生的成绩排序和计算
//在控制台中输入学生的学号,语文,数学,英语成绩;然后输出各科成绩,平均成绩 //和总成绩 Console.WriteLine("总学生数:"); int num = Convert.ToInt32(Console.ReadLine()); //通过学生总数简历一个二维数组 ...
2018-06-26 19:56:46
7457
原创 N*N矩阵
按照这样的N*N矩阵,进行计算123894765 Console.Write("请输入要输入的N*N矩阵的值 N:"); int n = int.Parse(Console.ReadLine()); int[,] a = new int[n, n]; int i = 0, j = 0;//二维数组的两个...
2018-06-26 19:51:01
3325
原创 杨辉三角形
在C#中用交错数组写出杨辉三角形。 Console.WriteLine("请输入你要打印的行数:"); int k = int.Parse(Console.ReadLine());//指定杨辉三角形的长度 int[][] scores = new int[k][];//二维数组,交错数组 for (int i = 0; i ...
2018-06-26 19:44:39
287
原创 C#中的三个排序,冒泡/选择/插入
定义一个一维数组int[] px = { 1, 23, 4, 3, 67, 68, 79, 56, 1213, 323, 234, 34 }; // 冒泡排序 int temp2 = 0; for(int i = 0; i < px.Length; i++) { fo...
2018-06-26 19:39:58
185
原创 Python的安装与配置环境变量
找到Python的官方网站:Python.org下载完成后直接安装,然后点我的电脑右键属性,进入高级属性点击进入环境变量,找到Path,双击编写在最后输入你的安装路径;c:\Python27记得导入系统,否则可能出现错误,已经导入就不要在写重点:分号要是英文的在开始中输入 cmd ,进入命令处理程序出现下图情况,配置成功Pyt
2017-09-06 11:19:00
302
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人