自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(149)
  • 资源 (12)
  • 收藏
  • 关注

原创 a*自动寻路算法详解

这篇博文是在其他博客基础上加工的,主要原因是感觉原博客举得例子不太好,很多细节感觉没有描述。A*算法主要是在父节点更新那个地方很容易误解,但是父节点的更新又是A*算法的核心,因为遍历到目标节点之后就是根据父节点回溯返回找到的路径的。开始:一只探路猫让我们想象一下,有一款游戏,游戏中一只猫想要找到获取骨头的路线。“为什么会有一只猫想要骨头?!”你可能会这么想。在本游戏中,这是一只狡猾的猫,他想捡起骨头给狗,以防止被咬死!:]现在想像一下下图中的猫想找到到达骨头的最短路径:..

2020-09-02 08:23:37 3730 1

原创 状态同步–技能系统的同步机制分析

https://www.cnblogs.com/sevenyuan/p/6678317.htmlhttps://www.lt-tree.com/2019/09/21/%E8%81%94%E7%BD%91%E6%88%98%E6%96%97%E5%90%8C%E6%AD%A5%E5%AE%9E%E7%8E%B0/https://blog.csdn.net/best789248/article...

2020-04-03 20:30:20 742

原创 数据结构与算法博客总结大全

Interview-Algorithms-DataStruct-https://github.com/0voice/interview_internal_reference#1-https://github.com/ZXZxin/ZXBlog-https://github.com/awangdev/LintCode-https://github.com/apachecn/Inte...

2020-03-31 16:08:53 281

原创 红黑树算法心得总结

先列一下红黑树的特性:每个节点或者是红色或者是黑色 根节点是黑色 每个叶子节点是黑色。(注意:这里的叶子节点是指为空的叶子节点) 如果一个节点是红色,则他的子节点必须是黑色 没一个节点到该节点子孙节点的所有路径上包含相同数目的黑色节点心得:第四条性质,如果子节点是红色,则他的父节点必然是黑色,因为如果是红色就违背了第四条性质...

2020-03-31 10:02:07 252

原创 解释性脚本语言与编译性语言的区别

Lua代码的执行流程脚本语言通常都是解释执行的,每一门脚本语言都会有自己定义的OpCode(operation code, 也称为 bytecode,即操作码或字节码),即为这门程序定义的“汇编语言”。一般的编译型语言,比如C等,经过编译器编译之后,生成的都是与当前硬件环境相匹配的汇编代码。而脚本型语言经过编译器前端处理之后,生成的就是字节码,在将该字节码放在这门语言的虚拟机中逐个执行。脚...

2020-03-30 21:01:23 1167

原创 DFS算法实现要点总结

对顶点建立对应数目的visited标志数组且初始化false未访问的状态 对顶点数组未访问过得顶点依次进行DFS遍历 DFS函数中就是行变量i不变,j从0到顶点总数的变化遍历二维数组的邻接矩阵中未访问过得点 注意:求取某点的所有邻接点,就是该点的i值不变遍历j从0到顶点总数变化,邻接矩阵中的顶点...

2020-03-28 12:12:01 453

原创 Dijkstra算法实现要点总结

1、算法实现中定义两个集合U和S,其中S记录已求出最短路径的点,U是还未求出的最短路径的点2、将起始点加入S中,在U中找出距离起始点的最短距离的点,并将其加入到S中,3、更新U中所有顶点到起始点的最短距离(注意:这个是每次从U中找出一个距离起始点的最短路径点,都要对U中所有的顶点进行一次最短路径更新)4、U中的所有与起始点不直接相邻的点到起始点的最短路径都定为无穷大,这样就间接使用了广...

2020-03-28 10:17:16 367

原创 如何在Lua中绑定Button事件

2020-03-27 21:23:04 1144

原创 直线与三角形的碰撞检测

将问题转化为三角形是否包含点的问题后,就可以借助下面的方法进行计算了https://www.cnblogs.com/graphics/archive/2010/08/05/1793393.html

2020-03-25 19:56:52 443

原创 Create a Native Plugins

当 Unity 需要使用第三方的库的时候,特别是第三方开发库是使用 C/C++ 来实现的时候,我们就需要针对各个平台编译 Library 来供 Unity 使用。最近刚刚有过一次封装经验,放在此供大家参考。这里分三部分来介绍。Unity 端函数声明#if UNITY_STANDALONE_WIN || UNITY_EDITORpublic const string PluginN...

2020-03-24 16:22:37 138

原创 C++调用Lua问题总结

1、注意平台设置的一致性,比如都使用x64,重新设置平台会导致静态库链接丢失的问题也要注意下2、编译静态库工程的源文件中并未加入Lua.c和Luac.c2、参考链接https://www.cnblogs.com/jadeboy/p/3947746.htmlhttps://www.byjth.com/lua/33.htmlhttps://www.byjth.com/lua/34....

2020-03-24 10:43:07 263

原创 Userdata

话从这里说起在我发表《Lua中的类型与值》这篇文章时,就有读者给我留言了,说:你应该好好总结一下Lua中的function和userdata类型。现在是时候总结了。对于function,我在《Lua中的函数》这篇文章中进行了总结,而这篇文章将会对Lua中的userdata进行仔细的总结。对于文章,大家如果有任何疑议,都可以在文章的下方给我留言,也可以关注我的新浪微博与我互动。学习,就要分享,我...

2020-03-22 19:59:18 1615

原创 延迟补偿的总结

国内的网络游戏多是客户端/服务器方式,而对于游戏实时性要求比较高的网游,如 果采用客户端发送时间包给服务器,服务器校验后再下发给客户端表现的话,网络延时 和抖动都会恶化游戏体验。对于客户端和服务器的同步问题, 一般有两种算法解决:① 、客户端和服务器之间进行对时后,客户端发送数据包给服务器,服务器根据收 到的客户端数据包先后进行排序,先到达的服务器端的事件包被判定为先发生,后到达 服务器的事件...

2020-02-28 17:23:31 4406 1

原创 守望先锋等FPS游戏的网络同步

在一个采用C/S架构的游戏中,客户端和服务端的游戏状态有差异是不可避免的。客户端和服务端各自都维护了一份游戏状态。这两份游戏状态依赖网络包通信保持同步。但由于各客户端到服务端的时延具有不确定性,游戏状态同步变得非常困难。通常服务端在游戏拓扑中承载的是状态仲裁者的角色,客户端玩家看到的“经验证”的有效游戏状态总是延后于服务端的游戏状态。网络时延是必然存在的,所以游戏状态的不同步也是必然存在的。但...

2020-02-28 14:44:22 1475

原创 快节奏多人游戏同步(1)-ClientServer架构

PART 1 概述本文是关于探索快节奏多人游戏的技术和算法系列的第一篇,因此对多人游戏概念非常熟悉的同学可以随意的跳过这一篇就好啦~因为接下来只是一些介绍性质的讨论。。。任何类型的游戏开发都是某种挑战,然而在多人游戏中我们还有更多全新的问题函待解决~最最 Interesting 的地方在于其核心问题其实是人类和物理!- - 好吧其实是作弊和地理限制造成的网络延时。。PART 2 反作弊...

2020-02-25 11:46:50 423

原创 快节奏多人游戏同步(3)-Entity插值

PART 1 概述在本系列的「第一篇文章」中,我们介绍了关于权威服务器及其反作弊特性,然而仅仅是最简单的实现可能会导致关于可玩性和响应速度的问题。在「第二篇文章」中,我们提出了「客户端预测」的方案来克服这个困难。以上两篇文章事实上介绍的是一种在连接到有传输延迟的远程权威服务器的状况下,可以让玩家像单机游戏一样流畅的控制角色移动的一种概念和技术。在本文中,我们将会讨论在在同一台服务器上有...

2020-02-25 08:22:30 459

原创 List和Dictionary的使用技巧总结

List和Dictionary想必是我们平常用到最多的C#容器了,他们使用起来都很简单,所以很多人就可能就没去深究,其实在使用过程中有很多的小技巧能让我们写的代码变得更高效也更安全。1·合理的指定初始容量。List和Dictionary的构造函数都有一个入参为int的构造函数:public Dictionary(int capacity);和public List(int capacity...

2020-02-21 08:17:43 503

转载 Unity3d聊天视图适应手机键盘视图

我们实际开发出来的聊天系统,有时候会出现这样一个现象,点击InputField会弹出手机系统的键盘,键盘的弹出会遮住InputField甚至频道里面的消息。为了解决游戏聊天视图被这个系统键盘遮挡的问题,最直接的思路就是,输入框根据键盘的高度来做适应,意思就是说,根据键盘的高度,动态改变游戏聊天视图的高度。目前市面上比较有名的游戏,如手游《龙珠》是这么做的。我参与的项目同样遇到这样的需求,采用了...

2020-01-05 14:17:58 726

原创 关于C#中派生类调用基类构造函数的理解

本文中的默认构造函数是指在没有编写构造函数的情况下系统默认的无参构造函数<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />1、当基类中没有自己编写构造函数时,派生类默认的调用基类的默认构造函数Ex:public class MyBaseClass...

2019-12-14 13:57:58 716

转载 IOCP 浅析

什么是 IOCP随着计算机技术,尤其是网络技术的飞速发展,如今的程序开发人员不仅仅局限于基于单机运行或单一线程的应用程序的开发。服务器端 / 客户端模式的最显著的特点是一个服务器端应用能同时为多个客户端提供服务。而传统的服务器端 / 客户端模式通常为每一个客户端创建一个独立的线程,这种实现方式在客户端数量不多的情况下问题不大,但对于类似于铁路网络订票这样的瞬间客户数量巨大的系统来说,效率极端低...

2019-11-16 17:28:29 144

转载 GraphicsLab Project之基于物理的着色系统(Physical based shading)-直接光照

引言近些年来,基于物理的光照着色系统(Physical based shading)越来越流行。主流的渲染器,游戏引擎都支持了这种着色方式。相比于以前的Phong和Blinn-Phong的光照着色模型,这种着色方式更加真实,也更加容易适应不同场景。接下来的几篇文章,我将从实现的角度分析如何设计实现一个这样的光照系统。主要仿照Unreal4的实现方式来进行实现。基于物理的着色那么,在我们...

2019-11-12 22:03:57 279

原创 数组、ArrayList和List的区别

在C#中数组,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢。数组数组在C#中最早出现的。在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单。//数组string[] s=new string[2];//赋值s[0]="a";s[1]="b";//修改s[1]="a1";但是数组存在一些不足的地方。...

2019-11-04 12:00:42 539

原创 六大设计原则梳理

一、单一职责原则:全称:“Single-Responsibility Principle”说明:就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因。所谓职责,我们可以理解他为功能,就是设计的这个类功能应该只有一个,而不是两个或更多。也可以理解为引用变化的原因,当你发现有两个变化会要求我们修改这个类,那么你就要考虑撤分这个类了。因为职责是变化的一个轴线,当需求变化时,该变化会反映类...

2019-11-03 18:38:46 177

原创 发光shader

手写unity shader实现光晕(外发光)// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'// Upgrade NOTE: rep...

2019-11-02 12:27:24 279

原创 Physically Based Shading on Mobile

This post is the first in hopefully a series of in depth, highly technical discussions of features in UE4.This is a follow up to my talkReal Shading in Unreal Engine 4. That talk explained the shad...

2019-10-30 18:21:52 222

原创 Unity3D与iOS的交互

1. 关于Unity3DUnity3D(以下简称U3D)是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。作为一款跨平台开发工具,难免会与原生平台进行一些交互操作来完成一些特定的平台功能。例如:你需要直接操作iOS的IAP来实现游戏中的内付费功能;甚至一些第三方...

2019-10-25 18:15:09 222

原创 Lua 性能

OverviewThis page is copied from theCA wiki. The widget used in the performance tests is available from theCA SVN.Other ConsiderationsIt is a well known axiom in computing that"We should for...

2019-10-21 18:13:53 284

原创 Lua脚本性能优化指南

Lua脚本是C语言实现的脚本,广泛应用于客户端扩展脚本,例如魔兽世界等网游。但是Lua的性能一般,并且有许多不好的实现,误用会大大降低系统的性能。 网络上有一些关于Lua脚本性能优化的资料,但是都是针对Lua撰写的,写作年代较早,一些优化技巧不完全正确,而且没有针对LuaJIT优化过后的代码进行考虑。 本章对于Lua的一些语法,在Lua和LuaJIT中进行比较测试,并给出相关优化数据和结论。由...

2019-10-21 08:16:43 1985

原创 深入Unity资源(Asset)

Unity资源统称为Asset。本节讨论四个话题:Asset 和 Unity.Object的概念和内涵;File Guid, local ID 和 Instance ID的由来;MonoBehavior, ScriptableObject 和普通 c# 类的区别和应用场景;Unity.Object的资源生命周期(主要是加载和卸载)。(一)Asset 和 Unity.Object官方详解...

2019-10-08 18:36:23 1256

原创 Lua Table遍历总结

当我在工作中使用lua进行开发时,发现在lua中有4种方式遍历一个table,当然,从本质上来说其实都一样,只是形式不同,这四种方式分别是:forkey,valueinpairs(tbtest)doXXXendforkey,valueinipairs(tbtest)doXXXendfori=1,#(tbtest)do...

2019-08-22 18:48:57 439

原创 table.sort的注意点总结

lua中对table的排序一般是用lua自带的table.sort()函数排序,一般不采用自己写的排序的方式,以下来说一说table.sort()排序和在工作中遇到的问题1.排序的方式table.sort(tbl,function(a,b)return a > b end)以上是一个简单的例子,得到的效果是对于待排序的数据的一个升序,你这样认为就是错了,例如a和b是一个...

2019-08-22 14:56:50 1276

原创 C# 委托的三种调用示例(同步调用 异步调用 异步回调)

本文将主要通过同步调用、异步调用、异步回调三个示例来讲解在用委托执行同一个加法类的时候的的区别和利弊首先,通过代码定义一个委托和下面三个示例将要调用的方法:public delegate int AddHandler(int a,int b); public class 加法类 { public static int Add(int a, int b)...

2019-08-16 17:50:46 325

原创 Activity间传值方式总结

Activity页面跳转传值第一种方法:(Intent)发送方:Intent intent = new Intent();intent.putExtra("name", "诸葛亮");intent.putExtra("age", 50);intent.putExtra("IQ", 200.0f);intent.setClass(MainActivity.this, Secon...

2019-08-10 12:03:36 127

转载 UGUI 字体2

我们项目从某个时候开始ui突然开始出现字体花屏现象(unity 开发版本:5.3.6p6),而且很难必现却又时有发生,确实查找和解决起来并不太容易。  关于这个问题,uwa官方给出了解释,http://blog.uwa4d.com/archives/techsharing_35.html,http://blog.uwa4d.com/search/%E5%AD%97%E4%BD%93/。可用的...

2019-07-24 08:16:36 223

原创 UGUI字体优化

字体图集的重建机制:当一个新文字出现的时候,会被添加到字体图集,如果图集已经没有空余的地方,那么图集会被重建。图集会以相同的尺寸重建,打包当前激活的所有UI text组件中要显示的文字,如果发现图集尺寸不够用的时候,图集会重新扩充尺寸。后备字体机制:对于字体库里没有的文字,会被放进后备字体图集里,后背字体图集会常驻内存里,不会被销毁。后备字体取自于系统自带的系统字库Arial.ttf,在发布的...

2019-07-24 07:47:24 428

转载 Perlin Noise变种及无缝纹理生成

一、Perlin Noise变种  通过前面几篇文章,我们已经成功实现了1D,2D,3D,4D Perlin 噪声,Perlin噪声实现不是很复杂,但是我们也应该注意到,随着维度的增多,实现的复杂度也在大幅度增加,包括permutation表的检索和插值都会变得越来越难以控制,而且性能瓶颈表现得也是越来越明显。当然,我们平时很少用到超过4D以上的Perlin噪声,事情还不没有想象的那么困难。在...

2019-05-19 18:07:08 620

原创 软件操作 SVN使用教程总结(下)

7.SVN更新(SVN Update)更新本地代码与SVN服务器上最新的版本一致,只要在需要更新的文件夹上点击右键或者在文件下空白处点击右键,选择”SVN Update” (获取指定版本中的内容,点击右键执行SVN菜单中的“Update to reversion“),就可以了。7.1 如何解决冲突文件对于每个冲突的文件Subversion在你的目录下放置了三个文件:如下:为什么会产生冲...

2019-05-12 12:32:55 217

原创 软件操作 SVN使用教程总结

SVN简介:为什么要使用SVN?程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本。Subversion是什么?它是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subversion允许把数据恢复到早期版本,或是检查数据修改的历史,Subversion可以通过网络访问它的版本库...

2019-05-12 12:30:30 168

原创 Unity进阶技巧 - RectTransform详解

RectTransform属性一览前言最近要做UI,有时候需要在代码中调整改变UI控件的属性,比如位置、大小等,然而在NGUI里面,控制UI控件的位置等属性的是RectTransform这个组件,这个组件继承自Transform组件,却增加许多自己的特性,在不了解这些特性的情况下鲁莽的去使用它,会导致出现很多匪夷所思的问题,而且使用起来也不够得心应手,于是决定研究一下RectTr...

2019-05-09 10:25:49 429

转载 A*算法

Amit's A star Page中译文译序这篇文章很适合A*算法的初学者,可惜网上没找到翻译版的。本着好东西不敢独享的想法,也为了锻炼一下英文,本人译了这篇文章。由于本人英文水平非常有限,六级考了两次加一块不超过370分,因此本译文难免存在问题。不过也算是抛砖引玉,希望看到有更多的游戏开发方面的优秀译作出现,毕竟中文的优秀资料太少了,中国的游戏开发者的路不好走。本人能力有...

2019-05-07 18:31:39 198

poolmanager插件--v7.rar

因为package和他人已上传的重复,所以这个是导入unity压缩后的文件。是poolmanager的version7

2020-07-27

网易TA笔试题整理(不全) (1).txt

真实的网易TA面试题,很有参考价值,不请放心文档未作假

2019-08-25

官方Spine插件

官方最新的Spine插件

2018-08-22

Commandbuffe使用最详细Demo

Commandbuffe使用最详细Demo,一个demo让你学会使用commandbufffer

2018-08-22

Unity5.x打包场景AssetBundle和加载场景

Unity5.x打包场景AssetBundle和加载场景Unity5.x打包场景AssetBundle和加载场景Unity5.x打包场景AssetBundle和加载场景

2018-08-18

unity网络加载资源加载Demo

unity网络加载资源加载Demo

2018-08-18

FSM状态机Dmeo

FSM状态机的详细实现Demo请放心下载学习,多谢各位欣赏下载,多谢各位。

2018-08-18

利用Projector实现伪动态阴影

利用Projector实现伪动态阴影利用Projector实现伪动态阴影利用Projector实现伪动态阴影

2018-08-18

UGUI优化方法总结

UGUI优化方法总结

2018-08-15

UI框架的搭建总结

UI框架UI框架

2018-08-15

NGUI 3.7.2

NGUI版本,3.7.2,上传最新版本与您共享,请您多多支持 ne of the [99ff00]"Control"[-] prefabs from the [99ff00]Project View[-] into the [99ff00]Scene View[-]. Alternatively you can create a new sprite or label from the NGUI menu or by using shortcut keys: * [99ff00]ALT+SHIFT+S[-] adds a new sprite. * [99ff00]ALT+SHIFT+L[-] adds a new label. * [99ff00]ALT+SHIFT+T[-] adds a simple texture. * [99ff00]ALT+SHIFT+W[-] adds an invisible widget. Each of the shortcuts adds a [99ff00]child[-] object to whatever you have selected. When any NGUI widge

2015-04-24

选课管理系统论文

本文是制作选课管理系统的毕业设计论文,只是一部分

2014-04-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除