- 博客(44)
- 资源 (2)
- 收藏
- 关注
转载 ASCII,Unicode 和 UTF-8之间联系
计算机编码问题对于IT从业者来讲的话,或多或少都困扰过。今天算是入门一下。原文链接:阮一峰-字符编码笔记:ASCII,Unicode 和 UTF-8一、ASCII 码我们知道,计算机内部,所有信息最终都是一个二进制值。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111。上个世纪60年代,美国制定了一套字符编码
2020-10-12 16:15:34 221
原创 C#基础系列(3)之关键字partial
之前一直以为它很简单,就没把它太当回事。今天却在项目代码当中遇到了这个关键字,才发现对它的认识仅仅停留在表面上,因此,为了深刻记住它,特此写一篇博客。1. 什么是partial类型? C# 2.0 引入了局...
2019-08-20 15:21:00 410
原创 Unity3D Attributes用法小结(二)
本文的Attribute总结,是在Unity3D Attributes用法小结(一)基础上继续完成的,Unity Editor属性位于UnityEditor命名空间下面,主要在程序Eidtors情况下使用的。本文参考的API版本为2018.3,它的UnityEditor的Attributes如下:1.Callb...
2019-04-18 17:18:29 1448 2
原创 Office 2013安装 MathType 6.9出现问题解决方案
安装过程中关闭office软件若出现意外,请在控制面板界面将其卸载!!!安装失败,重新下载一下Windows版本,再试一次安装成功后,打开word2013会有错误提示信息:The MathType DLL cannot be found.Please reinstall mathtype.解决方法,分为如下两步:将 %MathType安装目录%\Office Support\64\...
2019-02-26 16:03:34 1475
原创 PhotonServer入门(二)
1.Unity客户端与PhotonServer交互流程       本文主要针对Unity创建的客户端与基于PhotonServer创建的服务端交互进行进行简单示例说明。首先看一下二者发生交互的图解。  &
2018-08-08 20:29:08 984 1
原创 PhotonServer入门(一)
1.安装PhotonServer(1)首先下载PhotonServer,或者点击PhotonServer直接下载 (2)双击运行PhotonServer安装包,进行解压。 (3)解压出来后,如果是64位电脑,则运行 E:PhotonServerSDK\Photon-OnPremise-Server-SDK_v4-0-29-11263\deploy\bin_Win64文件夹下的PhotonC...
2018-08-03 21:35:43 3768
原创 C# 控制台+NHbidernate配置Mysql
本文参考链接:NHibernate Codeproject1. 在VS里面创建控制台示例程序首先,创建一个C#控制台程序,在这里,我命名为UserNHibernateToMySQL。2. 导入MySql.Data 和NHibernate的DLL文件在项目引用上面右键,“管理NuGet程序包”,搜索并导入MySql.Data 和NHibernate的DLL文件,导入成功之后,如...
2018-07-25 18:51:22 419
原创 VS2017 .net环境配置Mysql
1.首先,确保Mysql安装正确。点击Mysql安装文件mysql-installer-community-8.0.11.0.msi,然后就能看到下图。 为了一次性成功,上述红色框里面的内容都需要安装正确,要是漏掉的话,点击Add进行添加。2.确保Connector/Net的.net版本与VS创建的服务端控制台的环境要保持一致。在这里,我的Mysql Connector/Net的...
2018-07-24 20:24:39 1863
原创 MySql常用命令
       由于Mysql处于开源状态,加上机缘巧合之下,便解除了MySql数据库。 之前本科的时候学过了SQL Server, 所以上手MySQL也很容易(可能是自己接触的部分超级简单吧,哈哈~自high一下)。下面看下今天的主题:1.PRIMARY KEY 和 UNIQUE KEY 的区别&nb
2018-07-24 20:07:16 252
原创 Lua之面向对象
一、面向对象特征封装:指能够把一个实体的信息、功能、响应都装入一个单独的对象中的特性。继承:继承的方法允许在不改动原程序的基础上对其进行扩充,这样使得原功能得以保存,而新功能也得以扩展。这有利于减少重复编码,提高软件的开发效率。多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。抽象:抽象(Abstracti...
2018-06-17 22:35:19 716
原创 Lua 协同程序的理解
一、什么协同程序       Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。二、协同程序和线程的区别   &nbs
2018-06-13 23:55:54 1654
原创 XLua 学习之路(二)之C#访问Lua
       这里指的是C#主动发起对Lua数据结构的访问。从Lua支持的数据类型来讲,C#获取Lua元素主要分为:基本数据类型(number,bool,string),复杂的数据类型(table),函数(function)。   &a
2018-05-30 21:11:09 2456
原创 XLua 学习之路(一)
一、XLua背景 xLua是Unity3D下Lua编程解决方案,自2016年初推广以来,已经应用于十多款腾讯自研游戏,因其良好性能、易用性、扩展性而广受好评。现在,腾讯已经将xLua开源到GitHub。想了解的,可以点击这里Xlua下载。二、在Unity中导入XLua  ...
2018-05-29 00:21:12 3729 2
原创 哈希表概述
一、什么是哈希表? 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表或哈希表。具体表现为:存储位置 = f(key);二...
2018-05-22 21:46:50 5357
原创 C#基础系列(2)之迭代器
1.迭代器介绍       在.NET中,迭代器模式被IEnumerator和IEnumerable及其对应的泛型接口所封装。如果一个类实现了IEnumerable接口,那么就能够被迭代;调用GetEnumerator方法将返回IEnumerator接口的实现,它就是迭
2018-05-11 00:47:27 394
原创 C#基础系列(1)之索引器
一、索引器背景 索引器允许类或结构的实例就像数组一样进行索引。 无需显式指定类型或实例成员,即可设置或检索索引值。 索引器类似于属性,不同之处在于它们的访问器需要使用参数。二、实现索引器1.需要注意几点使用索引器可以用类似于数组的方式为对象建立索引。get 取值函数返回值。 set 取值函数分配。this 关键字用于定义索引器。value 关键字用于定义 set 索引器所赋的值
2018-05-10 15:27:31 1010
原创 C#算法系列(12)——折半查找、插值查找、斐波那契查找
折半查找又称为二分查找,插值查找是在折半查找算法基础上优化而来,斐波那契查找算法又是针对插值查找进一步优化的,因此,我们先看下简单的折半查找算法,然后再剖析另外两种查找算法。注意,这里的查找均是有序表的查找,也就是说,待查的列表必须为有序的。因此,需要在查找之前,对列表进行排序操作。一、折半查找 折半查找的基本思想:在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则
2018-01-02 19:30:01 1141
原创 C#算法系列(11)——KMP模式匹配算法
今天要实现的这个算法是在复习串操作时出现的,之前看过一遍,但时隔久远,毫无印象,捡起来还有点儿困难,发现当时理解不是那么透彻,自己主要理解难点是这个算法如何求解next数组。明白之后,发现它也并不难理解,就是有些资料的术语起了误导的作用,下面会按照小白的思路进行一系列说明,力求道明它的本质。一、KMP算法背景 主要是要解决求解子串在主串中第一次出现位置的问题,KMP的提出能使得这个求解过
2017-12-15 16:58:48 1995
原创 C#算法系列(10)——循环队列、链队列
队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。它是一种先进先出的线性表,简称FIFO。允许插入的一端称为队尾,允许删除称为队头。 循环队列的提出主要是用于解决顺序队列的假溢出问题。解决假溢出的办法就是后面满了,再从头开始,头尾相接的循环。我们把队列的这种头尾相接的顺序存储结构称为循环队列。本文将从循环队列的顺序存储和链队列出发,讲解常用的出队与入队操作。下面先看下循
2017-12-10 14:46:50 3394
原创 C#算法系列(9)——栈
这两天在复习栈操作,从顺序结构,链式结构,到最后通过一个应用场景来进行检验栈操作,即表达式的四则运算,希望看了之后能够有所收获。一、栈的定义 栈是限定仅在表尾进行插入和删除操作的线性表。我们把允许插入和删除的一端成为栈顶,另一端称为栈底,不含任何数据元素的栈称为空栈。栈又称为后进先出的线性表,简称LIFO结构。 由此可知,栈的本质,就是线性表,只要前面的线性表章节掌握好了
2017-12-08 15:28:13 1393 3
原创 C#算法系列(8)——线性表
由于线性表操作相对前面二叉树,排序算法等比较简单,所以,就今天一口气写完它的所有基本概念和操作。本文,首先介绍了一下,线性表有哪几种实现方式及各自的优缺点,然后还以单链表为例,实现了链表的头插法创建、尾插法创建、查找元素、删除元素、增加元素等常用操作,希望看了之后能有所收获!一、线性表存储方式1.顺序存储结构 指的是用一段地址连续的存储单元一次存储线性表的数据元素。一般用,一维数组来实现
2017-12-05 20:51:49 676
原创 C#算法系列(7)——快速排序
快速排序其实是前面提到的最慢的冒泡排序的升级,它们都属于交换排序。它也是通过不断比较和移动交换来实现排序的,只不过它的实现,增大了记录的比较和移动的距离,将关键字较大的记录从前面直接移动到后面,关键字较小的记录从后面直接移动到前面,从而减少了总的比较次数和移动次数。本文将实现快速排序,且针对几种方案,对快排进一步优化。一、基本思想 通过一趟排序将待排记录分割成独立的两部分,其中一部分记录
2017-12-03 21:00:24 977
原创 C#算法系列(6)——归并排序
本文主要描述了归并排序的两种实现方式,递归方式和非递归方式,以及二者的优缺点比较。下面首先介绍一下归并排序的原理。一、理解归并排序 归并排序的本质:通过两两合并排序再合并,最终获得了一个有序的数组。通过在纸上演示,就会发现它其实是一棵倒置的完全二叉树。 原理:假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到n/2个长度为2或
2017-12-03 17:13:27 973
原创 C#算法系列(5)——希尔排序、堆排序
这几天一直在整理排序算法,并想挨个实现出来,个人认为实现算法的代码多敲总不是坏事,写多了自然感觉就出来了。今天想要实现的希尔排序和堆排序,首先介绍这两种排序算法的实现原理,后面再上具体实现代码。一、希尔排序 (1)原理:本质是针对直接插入排序的改进、通过一个自定义的增量,并按照这个增量分割成若干个子序列。使得每次排序,让子序列都趋于有序。直到增量递减为1时,整个序列将基本有序。增量为1时
2017-12-03 15:44:49 447
原创 C#算法系列(4)——简单排序算法小结
本篇文章主要讲述3种基本排序算法以及具体代码如何实现的,分别为冒泡排序,简单选择排序和直接插入排序,排序方式采用从小到大。根据在排序过程中待排序的记录是否全部被放置在内存中,排序分为:内排序和外排序。内排序是在排序整个过程中,待排序的所有记录全部被放置在内存中。外排序是由于排序的记录个数太多,不能同时放置在内存,整个排序过程需要在内存外存之间多次交换数据才能进行。排序算法的性能主要受3个方面影响:
2017-11-28 15:58:30 418
原创 C#算法系列(3)——二叉排序树
一、什么是二叉排序树 二叉排序树,又称为二叉查找树。它或者是一棵空树,或者具有下列性质的二叉树: (1)若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若它的右子树不空,则右子树上所有结点的值均大于它的根节点的值; (3)它的左右子树分别为二叉排序树。 构造一棵二叉排序树的目的,其实并不是为了排序,而是
2017-11-27 13:13:05 1139 1
原创 C#算法系列(2)——线索二叉树
首先在这里声明一下,本篇博客参考另外一位大神的博客,博客链接如下:http://blog.csdn.net/UncleMing5371/article/details/54176252。由于写的很好理解,所以就拿来借鉴一下,主要目的也是出于学习,让自己的算法能力有所提高。如果有版权问题,欢迎私信我,我收到后立马删除。好了,看下今天的主题——线索二叉树。线索二叉树的由来可以参考以上我上篇文章,C#算法
2017-11-23 11:04:32 1081
原创 C#算法系列(1)——二叉树
本文主要讲述二叉树的两种创建方式与四种遍历方式,以及附上具体的实现代码。 两种创建方式分别为:顺序存储和链式存储。遍历方式有:先序遍历、中序遍历、后序遍历以及层次遍历。一、 二叉树的性质 介绍性质主要是为了后续进行编写二叉树遍历算法的时会用到。在二叉树的第i层上至多有2^(i-1)个结点(i≥1)。深度为k的二叉树至多有2^k -1 个结点(k≥1)。对任何一棵二叉
2017-11-21 21:31:58 7779
原创 UI框架学习笔记
本文是根据学习SiKi学院上的UI框架总结得来的,仅仅是作为学习过程的记录,便于以后回顾。首先看下UI框架总体的设计思路: 一.UIPanelType:枚举类型,为了存储UI界面有哪几种类型。 二.UIPanelType.json:json文件,为了保存UI界面的Prefab存储路径。 三.UIManager:
2017-08-22 17:15:48 489
原创 AssetBundle学习笔记(一)
一、什么是AssetBundle? 1.它存在于硬盘上的文件。可称之为压缩包。该压缩包里面有多个文件,这些文件可分为两类:serialized file和resources file(即序列化文件和源文件)。(1)serialized file:资源被打散放在一个对象中,最后统一被写进一个单独的文件(只有一个)(如:模型资源,prefab资源等)(2)resources file:某
2017-07-25 15:29:19 7347
原创 Unity3D Attributes用法小结(一)
本文在书写的时候参考了几篇博客,如果有版权问题,还麻烦您私信我! 本文的Attribute总结,仅仅只小结了UnityEngine命名空间下的Attributes类。后续还有UnityEdito命名空间下的Attributes,这部分有时间再继续小结。Unity各个属性位于UnityEngine命名空间下面,继承自Attributes类。1.AddComponentMenu 添加组件菜
2017-07-13 20:31:10 6023 6
原创 Unity3D事件函数执行顺序
最近在复习Unity 3D的基础知识,虽然简单,但有些不常用的还是容易忽略和犯错,因此还是觉得总结一下比较好。 本文主要以官方的API为主,Unity 版本为5.6.参考链接为:事件函数 如果有不当之处,欢迎指出。 代码示例如下:using System.Collections;using System.Collections.Generic;using UnityEng
2017-07-12 21:58:10 616
原创 C#文本解析
文本解析有3种,分别为:XML解析,JSON解析和Excel解析一 XML解析 XML解析,可以细分为两种,一种是子节点的字段值较多,另一种是子节点的属性较多。本文会通过具体示例来详细讲述以上两种的适用场景。 下面现在第一种,子节点的字段值较多的。解析示例:如解析下述XML文件。被解析的xml文件:<skills> <skill> <id>2</id>
2017-05-24 22:18:03 2386
转载 C# 网络编程(一)
本文源连接:博客 命名空间 在网络环境下,我们最感兴趣的两个命名空间是System.Net和 System.Net.Sockets。 (1)System.Net命名空间通常与较高程的操作有关,例如download或upload,试用HTTP和其他协议进行Web请求等等. (2)System.Net.Sockets命名空间所包含的类通常与较低程的操作有关。如果要直接使用Socket
2017-05-23 10:14:41 264
原创 Unity聊天室实现
本文的通信协议采用的基于TCP协议实现的。然后通过Unity的NGUI插件,实现聊天室场景。把Unity作为客户端,服务器端以C#实现的。实现效果如下图: 上述效果,是开启了两个客户端,然后与服务器通信。思路大致是:首先服务器先接收数据,然后再将客户端发来的消息广播出去。 具体代码如下: C#服务器端: Client.cs:处理每个客户端的通信逻辑using System;
2017-05-22 21:37:22 1216
原创 C# 网络编程(TCP、UDP)
一 TCP协议 基于TCP协议的Socket通讯类似于B/S架构,面向连接,但不同的是服务器端可以向客户端主动推送消息。 使用Tcp协议通讯需要具备以下几个条件: (1).建立一个套接字(Socket) (2).绑定服务器端IP地址及端口号(服务器端) (3).利用Listen()方法开启监听(服务器端) (4).利用Accept()方法尝试与客户端建立一个连接(服务
2017-05-22 20:30:05 1343
原创 C#线程、任务和同步
一、进程和线程的区别 一个进程可以有多个线程;操作系统的设计可以归结为三点:(1)以多进程形式,允许多个任务同时运行;(2)以线程形式,允许单个任务分成不同的部分运行。(3)提供协调机制,一方面防止进程之间产生冲突,另一方面允许进程之间共享资源。二、通过委托方式创建线程这当中包括3种方式判断线程结束,代码如下: Program.csclass Program {
2017-05-22 10:30:17 706
原创 Shader 入门(二)
渲染管线的理解:最近在学习Unity Shader编程,为了加深对编程过程的理解,所以将学习过程中的一些学习内容记录下来,方便以后进行再次阅读。不说废话了,直奔今天的主题。了解管线之后,能让人了解3D物体从自身的数据传入开始到最后呈现在屏幕上的所有历程。在理解和解决渲染发生的问题的时候,往往有指导性作用。管线基本分为固定管线和可编程管线,固定管线,暂时没有什么好讲的,今天主要谈下可编程管线。参考的是
2017-04-13 20:25:15 1006
原创 U3D常用方法
一、创建物体1.首先,定义物体类型 GameObject go; 然后,再在Start方法中获取new一个对象void Start () { go = new GameObject("123"); }二、获取物体对象1.若脚本挂载在要获取的本物体对象上(1)首先,定一个类型 Light light;(2)void Start () {
2017-04-01 17:01:53 610
SmartWorld 2018
2019-02-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人