自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (37)
  • 收藏
  • 关注

转载 UGUI 查找按钮名称

昨天在做项目的时候,按钮是符合条件才会出现的,所以我需要在点击按钮时获得这个按钮究竟是哪一个,在询问了N多人之后,还是百度告诉了我这个答案。string name = EventSystem.current.currentSelectedGameObject.GetComponent<Button>().name;string name = EventSystem.curr...

2019-12-13 10:55:22 401

原创 Lua协程、GC垃圾回收机制以及如何调用C/C++函数

Lua 协程(coroutine)线程和协同程序区别与联系相同之处:Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。不同之处:一个多线程程序可以同时运行几个线程(并发执行、抢占),而协程却需要彼此协作地运行,并非真正的多线程,即一个多协程程序在同一时间只能运行一个协程,并且正在执行的...

2019-12-11 18:38:45 1102

原创 Lua如何实现面向对象?

Lua table(表)table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。table(表)的构造构造器是创建和初始化表的表达式。表是Lua特有的功能强大的东西。最简单的构造函数是{},用来创建一个空表。可以直接初始化数组:-- 初始化表mytable = {}-- 指定值mytable[1]= "Lua"-- 移除引用mytab...

2019-12-11 15:54:36 446

转载 XLua运行时热更新原理与实现

前言感谢提供思路两个博客主以下是博客地址:https://gameinstitute.qq.com/community/detail/120538https://www.jianshu.com/p/7b8ae23ecd81基本知识(热更新原理)我们在require一个Lua文件的时候是将Lua文件加载到package.loaded[modelname]中。当我们加载模块的时候,会先...

2019-12-11 11:21:40 1351

原创 Unity 关于帧同步的一些问题

1:帧同步如何解决不同步的问题?可靠稳定的帧同步基础算法 消除浮点数带来的精度误差 控制好随机数参考:Unity帧同步游戏极简框架及实例(附客户端服务器源码)2:帧同步怎么做到流畅的战斗?首先,定义一下流畅的战斗,流畅的战斗并不是代表着游戏的帧数一定要多高多高,而是说游戏的帧数在某一个帧数范围内小规模的变动,例如稳定在30帧这样。对于单机游戏来说,如果要保证稳定在30帧,每一...

2019-12-10 14:50:58 703

原创 Unity 基于帧同步的网络优化方案

帧同步含义游戏客户端接受来自网络的多个客户端的操作,如果这些操作在各个客户端是一样的,那么多个客户端的显示也就一样了,这就带来了“同步”的效果。所以在这种情况下,各个客户端的运算要绝对一致,不能依赖诸如本地时间、本地随机数等等“输入”,而要一切以网络来的操作数据为主。一般来说,大多数的游戏客户端引擎,都会定时调用一个接口函数,这个函数由用户填写内容,用来修改和控制游戏中各种需要显示的内容。...

2019-12-09 19:40:40 857

转载 Unity帧同步游戏极简框架及实例(附客户端服务器源码)

阅前提示:此框架为有帧同步需求的游戏做一个简单的示例,实现了一个精简的框架,本文着重讲解帧同步游戏开发过程中需要注意的各种要点,伴随框架自带了一个小的塔防sample作为演示.哪些游戏需要使用帧同步如果游戏中有如下需求,那这个游戏的开发框架应该使用帧同步:多人实时对战游戏 游戏中需要战斗回放功能 游戏中需要加速功能 需要服务器同步逻辑校验防止作弊LockStep框架就是为了上...

2019-12-09 16:14:20 2314

转载 Moba类游戏中如何处理网络延迟与卡顿

《王者荣耀》技术测试版本出台的时候,延迟非常大,而且还是卡顿,现在看一下帧同步里面比较特别的地方。帧同步有点像在看电影,它传统的帧同步需要有buffer,每个玩家输入会转发给所有客户端,互相会有编号,按顺序输入帧。比如我现在已经收到第N帧,只有当我收到第N+1帧的时候,第N这一帧我才可以执行。服务器会按照一定的频率,不同的给大家同步帧编号,包括这一帧的输入带给客户端,如果带一帧给你的数据你...

2019-12-08 15:12:00 1769

原创 Moba类游戏中如何实现断线重连功能

网络游戏-断线重连1、背景移动网络信号波动频繁,给移动游戏开发者带来诸多困扰,处理不好会造成较差的用户体验以及重复扣道具等严重问题2、网络连接方式通常游戏客户端都是通过创建socket与服务器取得连接,但也会根据使用场景划分成两种连接方式:TCP连接和HTTP连接。1) TCP连接即我们常说的长连接。这种连接方式下socket连接一旦建立,通信双方即可相互发送数据,直到一方终止...

2019-12-08 14:30:59 1361 2

原创 Unity 网络游戏同步方式

对于联网游戏来讲,同步的方式主要分为两种,状态同步、帧同步。1、状态同步:顾名思义,是指的将其他玩家的状态行为同步的方式,一般情况下AI逻辑,技能逻辑,战斗计算都由服务器运算,只是将运算的结果同步给客户端,客户端只需要接受服务器传过来的状态变化,然后更新自己本地的动作状态、Buff状态,位置等就可以了,但是为了给玩家好的体验,减少同步的数据量,客户端也会做很多的本地运算,减少服务器同步的频率以...

2019-12-06 18:18:00 1290

翻译 Unity中事件函数的执行顺序【超详细,图+文】

在Unity脚本中,有一些事件函数会在脚本执行时按预定顺序执行。 该执行顺序如下所述:编辑Reset:Reset是用来初始化脚本属性的,在第一次脚本附在对象上的时候和按下Reset按钮的时候会被执行。第一次场景加载Awake:Awake方法总是在Start方法执行之前和在一个prefab初始化后被调用。(如果一个gameobject处于inactive的状态,则Awake不会被调用,...

2019-12-06 15:14:40 412

原创 TCP与UDP的区别(常见面试题)

相同点UDP协议和TCP协议都是传输层协议。TCP(Transmission Control Protocol,传输控制协议)提供的是面向连接,可靠的字节流服务。即客户和服务器交换数据前,必须现在双方之间建立一个TCP连接,之后才能传输数据。并且提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。UDP(User Data Protocol,用户数据报协议...

2019-12-05 20:28:50 1252

原创 C#中的Lambda表达式和表达式树

Lambda—— 表达式"Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量。它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式。所有Lambda表达式都使用Lambda运算符=>,该运算符读作"goes to"。Lambda运算符的左边是输入参数(如果有),...

2019-12-04 17:22:11 730

原创 C#中委托和事件的区别

委托提供与C++中“函数指针”相同的功能,用于传递和调用函数的引用,是观察者模式的一种实现。事件是用委托实现的,是对委托的额外封装,其本质上是一种特殊的委托。事件是基于委托的,为委托提供了一个发布/订阅机制。可以说事件是一种特殊的委托,他的调用和委托是一样的。事件的作用封装订阅: 事件将委托的订阅操作进行封装,仅允许 += 和 -= 操作,避免程序员在开发时因误用 = 使得委托链断...

2019-12-04 14:41:05 485

原创 windows环境下lib和dll的区别和联系详细

c++中共有两种库:1、LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。(这种方式更灵活,写的程序体积小,但是需要.exe和dll同时发布)2、LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static link library。(这种方式不是很灵活,因为li...

2019-12-03 17:40:26 509

转载 A* 寻路算法

A* 寻路算法概述虽然掌握了A*算法的人认为它容易,但是对于初学者来说,A*算法还是很复杂的。搜索区域(The Search Area)我们假设某人要从A点移动到B点,但是这两点之间被一堵墙隔开。如图1,绿色是A,红色是B,中间蓝色是墙。你应该注意到了,我们把要搜寻的区域划分成了正方形的格子。这是寻路的第一步,简化搜索区域,就像我们这里做的一样。...

2019-12-03 17:34:55 462

原创 Unity有限状态机、层次状态机和行为树的联系及区别

一:有限状态机有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。有限状态机算是Unity开发中一个比较重要的技巧了。在游戏中,我们可能会遇到各种各样的状态,这里我以一个人物为例,我们可能要经常判断人物的生命状态或者人物的运动状态,然后做相应的操作。简单的有限状态机...

2019-12-02 20:29:18 2196 2

转载 Unity骨骼动画优化

一:骨骼动画的原理用Unity做游戏经常会用到3D角色,也就会用到骨骼动画。骨骼动画对性能的影响其实非常大的,在说这个问题之前,先来说说骨骼动画的原理。我之前做过多种骨骼动画,包括写过2D的骨骼动画系统(类似于现在比较流行的龙骨系统),也在flash的stage3D里面写过3D的骨骼模型动画。骨骼动画的原理实际上都是一样的:首先你需要有一个模型,2D或者3D的,这些模型是由顶点组成...

2019-12-02 17:18:10 1690 1

原创 Unity 动画压缩及其优化

一:为什么要做动画优化动画文件在游戏包体和内存中占的比例仅次于贴图,优化好动画文件,就优化了一小半游戏内存。拿我们正在开发的游戏举例,优化后的包体和内存比优化前减少了一百多兆,大概优化掉了五分之一的内存。二:优化思路2.1:Unity引擎对导入的AnimationClip提供三种压缩格式,Off、Keyframe Reduction和Optimal。其中,Off表示不采...

2019-12-02 00:57:31 2512

Unity Shader 技能冷却效果

使用Unity Shader实现技能冷却效果,与NGUI插件中的技能CD效果类似。

2018-05-03

UnityShader 用Plane实现旗帜飘扬效果

UnityShader 用Plane实现简单旗帜飘扬效果

2018-05-02

Simple LOD v1.6.unitypackage

SimpleLOD,除了同样拥有Mesh Baker所具有的Mesh合并、Atlas烘焙等功能,它还能提供Mesh的简化,并对动态蒙皮网格进行了很好的支持。该插件可在Run-time和Editor中都可以使用,同时开放了源码,大家可以根据项目的实际情况而作修改。

2018-04-17

Unity3d 动画重定向 动力学骨骼插件DynamicBone

通过动态计算角色位移和动画,产生的飘带物理效果,可用在各种动画效果制作,比如:制作头发飘动动画效果;

2018-04-03

VS调试利器autoexp.dat

VS调试利器,可以查看调试时看不到的值,使用方法(以VS2010为例): 1:替换到Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Packages\Debugger  2:重启visual studio

2017-07-05

Visual assist x trial key破解补丁

Visual Assist X 试用期一个月, 试用是全功能的, 这点还不错. 但是到期的话就不能继续了,先把visual studio软件关闭,运行vax_patch.exe,重启visual studio后,就可以使用了!

2017-06-24

Visual Assist X 2114

Visual Assist X是一款非常好的Microsoft Visual Studio插件,它可以完全集成到您的Microsoft开发环境中,升级了您的IDE,在不改变编程习惯的同时就可以感受到Visual Assist X为您带来的好处。软件支持Microsoft Visual Studio 2003-2012,C/C++,C#,ASP,VisualBasic,Java和HTML等语言,能自动识别各种关键字、系统函数、成员变量、自动给出输入提示、自动更正大小写错误、自动标示错误等。使用Visual Assist X有助于提高开发过程的自动化和开发效率。

2017-05-18

Avatar换装系统

它是一个Unity项目,显示如何在Unity中构建Avatar换装系统。 换装系统在游戏中非常重要,特别是在MMO游戏中。 通常,换装系统包含两个重要部分。 由于装备的外观不同(网格不同),因此将这些网格合并在一起是必要的。 第二,合并网格后,新网格包含许多材料(在此项目中,它有4种材质),这意味着它至少有4个drawcalls(依赖于着色器)。 所以合并材料在一起将减少drawcalls和提高游戏性能。

2017-03-21

Fast Shadow Receiver

阴影是3D空间中非常重要的方面。 然而,阴影渲染是GPU密集的过程。 快速阴影接收器通过最小化阴影绘制区域使阴影渲染更快。 这是低端移动设备上阴影性能问题的真正解决方案。

2017-03-07

Build Report Tool 自述文件

您的游戏版本想试图减少小于 50 MB 吗?需要去看,你的资产正在吃占用的磁盘空间? 此工具提供了一个很好前端为Unity的生成信息。它显示包含在build 时的资产和多少存储空间。

2017-03-01

Unity资源热更新之AssetBundle

包含旧版本的AssetBundle(Unity5.0以前)与新版本的AssetBundle(Unity5.0以后)的操作,以及AssetBundle的批量命名及打包操作

2016-12-07

Unity_LZMA方式的压缩与解压

使用LZMA压缩与解压Unity的Assetbundle包

2016-11-30

Unity3D 自定义树组件(树形菜单)

这是一个完整的Unity树形菜单项目工程,菜单可以进行折叠,点击某个节点,可以显示出所点击菜单的信息。

2016-11-05

Unity框选效果

Unity框选场景中的对象,被选中的对象,边缘高亮显示

2016-11-01

Unity3D-XML与JSON导出还原场景

将Unity游戏场景中游戏对象的、旋转、缩放、平移与Prefab的名称导出在XML与JSON中。然后解析刚刚导出的XML或JSON,通过脚本把导出的游戏场景还原

2016-10-26

Unity3D-XML与JSON解析

融合了XML与JSON的合成与解析(包括创建、更新、添加、删除、显示等操作)

2016-10-26

Unity 粒子系统缩放示例

这是一个完整版的Unity粒子系统缩放Demo,代码、资源、场景俱全,可直接看演示效果

2016-10-26

3D游戏引擎 源码+演示

一个小型商业版的3D游戏引擎,具有平常游戏所具有的的元素,如:场景、视角变换、图像、声音等众多元素

2013-12-28

获取本机的IP地址和MAC地址

在VC++6.0和VS下能顺利编译,获得本机的IP地址和MAC地址,并输出,里面为详细的源码,望大家学习与研究

2013-12-24

Unpause.zip

Use for make Unity3D animations and particles not pause when you set the Time.timeScale to 0. It's useful when you want to play some pause menu animation or make some good effect while the game is paused by setting Time.timeScale 0.

2019-05-17

Unity Shader - Sprite Shader之简单抠图

在PhotoShop中我们经常会用到抠图操作,现在就用Shader实现一个简单的抠图效果。使用当前像素颜色与需要抠掉的颜色相减作比较,然后与一个指定的阈值比较以决定是否将其显示出来;

2018-05-30

Unity Shader-后处理:景深

通过两张图片,一张清晰的,一张经过高斯模糊的,然后根据图片中每个像素的深度值在两张图片之间差值,就可以达到景深的效果了。

2018-05-26

Unity Shader - 后处理:高斯模糊

高斯模糊(Gaussian Blur),又叫做高斯平滑。高斯模糊主要的功能是对图片进行加权平均的过程,与均值模糊中周围像素取平均值不同,高斯模糊进行的是一个加权平均操作,每个像素的颜色值都是由其本身和相邻像素的颜色值进行加权平均得到的,越靠近像素本身,权值越高,越偏离像素的,权值越低。

2018-05-25

Unity Shader-后处理:简单均值模糊

所谓模糊,也就是不清楚,清晰的图片,各个像素之间会有明显的过渡,而如果各个像素之间的差距不是很大,那么图像就会模糊了,极端一点的情况,当一张图片所有的像素之间颜色都差不多时,那么这张图片也就是一个纯色的图片了。

2018-05-23

Unity Shader - 后处理:简单的颜色调整(亮度,饱和度,对比度)

我们在做游戏的时候,虽然现在有了Unity等引擎,不用我们自己处理一些繁琐的东西,但是不管怎么样,最后显示在屏幕上的还是一些RGB的像素信息,了解这些基本的概念,肯定对我们做游戏有更大的帮助。

2018-05-23

Unity Shader - 隐身效果

根据模型空间的y坐标范围,我们在vertex阶段记录一下vertex坐标,传递给fragment阶段,在fragment阶段用这个值和一个设定好的阈值进行比较,不满足条件的像素点直接discard,逐渐调整阈值,就可以得到让模型按照某个方向消失的效果了。

2018-05-23

Unity Shader - 3D流光效果

3D流光需要将流光贴图的UV坐标和模型UV的XY坐标对应了起来,再将它进行UV动画移动起来,就实现了3D的流光效果。

2018-05-22

Unity Shader-死亡溶解效果

溶解(dissolve) 效果常见于游戏中的角色死亡、地图烧毁等效果。在这些效果中,消融往往从不同的区域开始,并向看似随机的方向扩张,最后整个物体都将消失不见。

2018-05-22

UnityShader 法线贴图(Normal Map)与视差贴图(Parallax Map)

主要研究一下怎样增强法线贴图的效果,法线贴图的进阶版-视差贴图(Parallax Map)。

2018-05-21

UnityShader 浮雕凹凸贴图BumpMap与法线贴图NormalMap的原理及其区别

凹凸映射和纹理映射非常相似。然而,纹理映射是把颜色加到多边形上,而凹凸映射是把粗糙信息加到多边形上。

2018-05-20

UnityShader 渲染队列,ZTest,ZWrite,Early-Z

Unity渲染引擎一般都会先对物体进行排序,再渲染。常用的方法是: (1)先渲染所有不透明物体,并开启它们的深度测试和深度写入。 (2)把半透明物体按它们距离摄像机的远近进行排序,然后按照从后往前的顺序渲染这些半透明物体,并开启它们的深度测试,但关闭深度写入。

2018-05-18

UnityShader 描边效果

描边效果是游戏里面非常常用的一种效果,一般是为了凸显游戏中的某个对象,会给对象增加一个描边效果。

2018-05-17

UnityShader 边缘光(静态、动态及遮罩)效果

思路:用视方向和法线方向点乘,模型越边缘的地方,它的法线和视方向越接近90度,点乘越接近0。那么用 1-减去上面点乘的结果,来作为颜色分量,来反映边缘颜色强弱。

2018-05-16

UnityShader 漫反射(兰伯特与半兰伯特光照模型-逐顶点和逐像素光照)

漫反射光照是用于对那些被物体表面随机散射到各个方向的辐射度进行建模的。在漫反射中,视角的位置是不重要的,因为反射是完全随机的,因此可以认为在任何反射方向上的分布都是一样的。但是,入射光线的角度很重要。

2018-05-15

UnityShader 序列帧动画效果

序列帧动画的主要的思想是设置显示UV纹理的大小,并逐帧修改图片的UV坐标。

2018-05-15

UnityShader 实现3D模型颜色渐变效果

使用Unity Shader使模型的颜色产生简单的两种颜色过渡的渐变效果。

2018-05-11

UnityShader 实现2D流光效果

很多游戏Logo中都可以看到流光效果,实现方案就是对带有光条的图片uv根据时间进行移动,然后和原图进行叠加实现。

2018-05-09

空空如也

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

TA关注的人

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