c#
黄培龙
你好,我是一名游戏开发者,做过休闲游戏、竞技游戏、mmorpg、战棋游戏、卡牌自走棋,项目中我擅长框架搭建、战斗系统、网络同步(状态同步、帧同步)、物理引擎、AI,熟悉渲染管线、性能优化。我可以教你游戏开发技术,帮你解决项目问题。
展开
-
快速了解unity的IL2CPP
快速了解IL2CPP,为你节省大量时间原创 2022-07-18 11:38:30 · 2311 阅读 · 0 评论 -
【Unity】在Unity中使用C#执行外部文件,如.exe或者.bat
Unity中c#执行外部可执行文件原创 2022-06-20 11:08:38 · 829 阅读 · 0 评论 -
c#中message pack反序列化数组对象
直接转list用,AsListvar dataObj = MessagePackSerializer.Get<Dictionary<string, object>>().UnpackSingleObject(File.ReadAllBytes(inputPath));var arrayObj = (MessagePackObject) mapData["array"]var list = arrayObj.AsList();原创 2021-11-01 10:37:48 · 397 阅读 · 0 评论 -
求线段交点
求线段交点抄自:https://www.geeksforgeeks.org/program-for-point-of-intersection-of-two-lines/ public struct Point{ public double x; public double y; public Point(double x, double y){ this.x = x; this.y = y;翻译 2021-03-30 12:08:03 · 136 阅读 · 0 评论 -
相同输入一定相同输出的哈希算法,一致性哈希算法
public static int GetDeterministicHashCode(string str) { unchecked { int hash1 = (5381 << 16) + 5381; int hash2 = hash1; for (int i = 0; i < str.Length; i += ...原创 2021-03-30 12:02:18 · 540 阅读 · 0 评论 -
帧同步之:定点数(fixedpoint num)原理、运算、实现
帧同步之:定点数原理、运算、实现简述定点数:小数点固定的数浮点数:小数点不固定的数一些背景知识本文假设你拥有计算机组成原理中有关二进制、操作符、位运算的相关知识// 左移操作时将运算数的二进制码整体左移指定位数,左移之后的空位用0补充// 右移操作是将运算数的二进制码整体右移指定位数,右移之后的空位用符号位补充,如果是正数用0补充,负数用1补充// 负数,计算机中使用补码的方式表示// 补码 = ~原码 + 1// -1的码:~(10000000 00000000 0000000原创 2020-06-08 01:00:06 · 7504 阅读 · 0 评论 -
c# 搜索加了自定义Attribute的类 实现游戏服务器请求分发
目录问题描述自定义Attribute的方法解决方案问题描述最近在写一个使用c#实现的服务器,接受到请求后调用对应的业务代码完成响应,不想手动一个一个注册handler希望自动完成,所以有了本文自定义Attribute方法下面的例子定义了回响应请求的类和方法的Attribute类的Attributeusing System;namespace DC{ [A...原创 2020-01-29 23:32:31 · 285 阅读 · 0 评论 -
c# Dictionary泛型和Hashtable性能对比
测试代码using System.Runtime.InteropServices;using System.Collections;using System.Collections.Generic;using System;using DataStructure;using DataStructure.Toolkit;namespace Test{ public clas...原创 2019-12-27 12:24:55 · 182 阅读 · 0 评论 -
c#使用状态机计算一个形如"abc{0}, 123{1}"format字符串里一共有多少参数
本文使用状态机方法计算一个字符串中有多少参数public class StringFormatParamCnt : BaseSolution { enum CType { //大括号外 outC = 0, //{ left, //大括号中...原创 2019-12-27 11:54:39 · 160 阅读 · 0 评论 -
c# HttpWebRequest 请求url读取文本
public void Test(){ HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("https://blog.csdn.net/ak47007tiger"); req.Method = "GET"; using (WebResponse wr = req.GetResponse()) ...原创 2019-11-25 21:36:00 · 981 阅读 · 0 评论 -
c# 通过Type创建对象实例
public object CreateInstance<T>(){ return System.Activator.CreateInstance<T>();}public object CreateInstance(Type type){ return System.Activator.CreateInstance(type);}原创 2019-11-23 08:37:09 · 13135 阅读 · 0 评论 -
一口气解决c#的delegate, event, Delegate
概述本文旨在说明关键字delegate,event和类Delegate的使用方法keyword: delegate, eventdelegate:定义一个委托类型,指明什么样的方法属于这样的委托event:包装一个委托,实现观察者模式适用:某一个类型的方法调用,方便做观察者模式代码class UseEventAndDelegateKeyword{ public de...原创 2019-10-24 12:08:47 · 179 阅读 · 0 评论 -
Unity c# PC平台获得当前exe运行启动目录
Directory.GetCurrentDirectory();原创 2019-10-23 12:16:31 · 937 阅读 · 0 评论 -
c# 多线程异步变成之async await简明攻略
异步处理语法糖方便进行开启异步任务并等待结果完成的操作async 表明该方法是异步方法await 表面要等待task完成再执行后续代码特性async 修饰methodawait修饰返回值进行等待修饰Task表明是异步任务使用返回void类型async Task TestVoid(){ await Task.Run(() => { ...原创 2019-10-11 09:50:24 · 413 阅读 · 0 评论 -
Unity C# Job System 介绍 指南 手册 笔记
概述用于做多线程,可以提高性能配合 Entity Component System (ECS) 使用配合 Burst compiler概念job system一个受管理的job间可以有依赖关系的多线程的任务执行框架job一个执行单元,传入job system并根据配置被安排执行job dependencies不同job可以有顺序上的依赖,比如a在b之后才能执行...翻译 2019-06-13 09:48:02 · 1025 阅读 · 0 评论 -
数组实现的大根堆
堆一种树状的数据结构大根堆根节点是所有节点中数值最大的节点父节点的值总比子节点大基本操作Insert 向堆中插入一个值Update 更新Heapify 堆化RemoveTop 删除堆顶元素GetTop 获得堆顶元素辅助操作获得父节点获得左孩子获得右孩子获得当前容量判断一个节点是否是叶子节点交换2个节点的位置数组大根堆用数组实现的大根堆作...原创 2019-06-18 10:21:32 · 1510 阅读 · 0 评论 -
8皇后问题 回溯 递归 代码实现
8皇后问题 回溯 递归 代码实现算法如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。8皇后回溯算法定义a[k] = i:第k个皇后放在第 k行,第 i列皇后从第一行开始摆放1 如果还有没放的位置,把皇后放到这个位置上2 查看是否和之前摆放的皇后冲突,如果冲突到3,否则到43...原创 2019-06-22 21:33:46 · 177 阅读 · 0 评论 -
快速排序 实现 精要 代码 注释
要点把元素分为小于中值的和大于中值的2段元素分别放到数据段的两边在对上面的2段元素分别使用快排当无法分段的时候,因为所有的数据段都是按照由小到大放的,故所有的数据都是由小到大排好序的精要分治,分治是好理解的分割方法,想要理解这个过程,去证明一次原始的快排算法的分割方法能够完成数据分类即可,具体说明看代码注释分割找一个中值,随机找,或者用数据段第一个,或者用数据段最后一个...原创 2019-07-07 16:33:04 · 172 阅读 · 0 评论 -
适合Unity的好用的C#事件系统
好用的c#事件/消息系统优势在监听函数中无需进行强制转型操作,直接可以获得带有类型的事件对象//例如void OnSoundEvt(SoundEvt e)关键实现通过增加一个中间层Holder类,使用泛型保持消息对象的类型信息代码用起来的样子public class AClass : MonoBehaviour void Start() { Si...原创 2019-06-24 23:32:20 · 766 阅读 · 0 评论 -
unity 无法在ios上热更的原因和应对
unity 无法在ios上热更的原因和应对苹果禁止Mono虚拟机支持动态编译,因为苹果禁止,所以不能用动态编译原理c# -> CILCIL 通用中间语言可以被Mono虚拟机解释执行对Mono来说CIL是一种资源文件CIL到本地指令的即时编译依赖JIT (Just in Time)技术在ios上mono是Full AOT模式一切在运行前都编译成ios的...原创 2019-06-27 21:47:14 · 2609 阅读 · 0 评论 -
Unhandled Exception: System.FormatException: Input string was not in a correct format.
目标在string.Format中输出{}这样的符号报错的代码形式string.Format(@"{0}{}{1},{2}", "a","b","c");修改string.Format(@"{0}{{content}}{1},{2}", "a","b","c");最后输出a{content}b,c...原创 2019-08-20 10:52:15 · 8173 阅读 · 0 评论 -
在Unity中使用c#实现光线追踪
在Unity中使用c#实现光线追踪概述文本使用c#实现光线追踪是一个周末搞懂光线追踪的实践篇上篇地址 https://blog.csdn.net/ak47007tiger/article/details/96483485效果图实现主要参考Perter Shirley的Ray Tracing in one weekend工程地址...原创 2019-08-12 09:49:42 · 5182 阅读 · 2 评论 -
Unity使用线程池
本文做的事使用线程池打印一个参数代码using System.Collections;using System.Collections.Generic;using System.Threading;using UnityEngine;namespace DC{ public class ThreadPoolDemo : MonoBehaviour { pr...原创 2019-08-25 12:03:28 · 1461 阅读 · 0 评论 -
C# 解析xml文件
使用的包using System.Xml.Linq;解析方式解析和遍历System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);var xDoc = XDocument.Parse(File.ReadAllText(xmlPath, Encoding.GetEncodi...原创 2019-08-22 09:48:43 · 866 阅读 · 0 评论 -
深拷贝 浅拷贝的概念 以及 c# 中的深拷贝和浅拷贝
注释 + codeusing System;namespace Test{ public class TestCloneEntity : ICloneable { public string content; public TestTwoStringCompare field; /// <summary&...原创 2019-09-27 20:27:35 · 99 阅读 · 0 评论 -
c# 判断 字符是否是中文汉字
c# 判断 字符是否是中文汉字public static bool IsChinese(char c){ return 0x4e00 <= c && c <= 0x9bb;}原创 2019-05-28 16:50:47 · 2933 阅读 · 0 评论