自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(493)
  • 资源 (38)
  • 论坛 (1)
  • 收藏
  • 关注

转载 Unity iOS使用ASTC格式纹理实践

引言上一篇文章描述了如何在不修改自定义渲染组件的前提下使用alpha分离的纹理来提升 iOS 的透明压缩纹理质量(见这里:https://indienova.com/indie-game-development/unity-alpha-separate/)。在这个方案投入项目开始使用一段时间之后,UI 同学又来找我抱怨了:虽然一些贴图的不透明部分不会显得脏了,但是为什么有些纹理的半透明部分表现这么奇怪呀?这就涉及到上次方案中透明通道贴图格式的选择问题了。在上一篇文章中,我们的透明通道贴图在 iO..

2021-02-26 16:10:27 215 1

转载 Unity 3D-- 摄像机Clear Flags和Culling Mask属性用途详解

1.简述两个属性1.1 Clear Flags 清除标记 每个相机在渲染时会存储颜色和深度信息。屏幕的未绘制部分是空的,默认情况下会显示天空盒。当你使用多个相机时,每一个都将自己的颜色和深度信息存储在缓冲区中,还将积累大量的每个相机的渲染数据。当场景中的任何特定相机进行渲染时,你可以设定清除标记以清除缓冲区信息的不同集合。可以通过下面四个选项之一来完成:1.Skybox 天空盒 这是默认设置。在屏幕上空的部分将显示当前相机的天空盒。如果当前相机没有设置天空盒,它会默认使用...

2021-02-18 14:33:57 51

转载 Unity3d实现阿拉伯语适配,不规则特殊字符的处理

前言最近做了阿拉伯语的语言适配。记录一些比较麻烦的点。其实我也没太明白具体和其他语言有什么不同,唯一听懂的就是他们的语序是从右往左的(比如“你好!”,他们的阅读顺序是“!好你”)大概是这样子,具体原理也有很多大神在解释。但可能我没天赋,看的懵懵懂懂索性不去过分理解了。直接用按大神分享的插件就好了。插件用了前辈们都推荐的插件Arabic Support for Unity,免费的。没什么可说的。就一句调用代码,demo里面都有。AssetStore插件地址使用&问题这个插件能满足

2020-12-04 18:10:58 110

原创 Unity 游戏计时

1:当前时间(秒数)(登录游戏是获取服务器当前时间:_serverTime、游戏开始到现在的时间:Time.realtimeSinceStartup、打开游戏时记录的时间:m_UpdateTime)public int ServerTimestamp{ get {return (int)(_serverTime +Time.realtimeSinceStartup - m_UpdateTime);}}2:今天剩余时间(一天的秒数:ONE_DAY、一天经过的秒数:Server

2020-07-09 21:12:35 202

原创 list sort()委托排序(根据一个值,判断多个条件)

排序规则,按以下规则依次判断可领奖>未开始>进行中 高品质>低品质public List<Legend2TreasureTaskData> TreasureTaskDatasList{ get { List<Legend2TreasureTaskData> list = new List<Legend2TreasureTaskData>(); foreach (var v in _datas) { list.Add(v

2020-07-09 18:37:53 313 1

原创 list sort()多个条件间的排序

根据品质、等级进行排序,并把寻宝放在最后面;品质quality、等级Level、寻宝DoTreasure List<LegendCardData> legendCardDataList = new List<LegendCardData>(); legendCardDataList.Sort(SortByIdTreasureHunt); int SortByIdTreasureHunt(LegendCardData data1, LegendCa.

2020-07-09 17:52:05 437

原创 list sort()委托排序

自定义对象ConfigEquipmentLotteryDisplayInfo ,给List<ConfigEquipmentLotteryDisplayInfo> 集合按优先级排序。public class ConfigEquipmentLotteryDisplayInfo{ [ConfigAttribute(Name = "random_group")] public string _RandomGroup; [ConfigAttribute(Name =

2020-07-09 17:03:42 84

原创 Lua调试器工作原理

lua本身提供了回调机制,就是说当某事件产生时去调用指定的函数事件类型:#define LUA_MASKCALL(1 << LUA_HOOKCALL)#define LUA_MASKRET(1 << LUA_HOOKRET)#define LUA_MASKLINE(1 << LUA_HOOKLINE)#define LUA_MASKCOUNT...

2020-02-10 15:10:24 413

原创 Lua虚拟机及其工作流程

Lua虚拟机解释性脚本语言与编译型语言区别:1:由于每个脚本语言都有自己的一套字节码,与具体的硬件平台无关,所以不用修改脚本代码,就能运行在各个平台上。硬件、软件平台的差异都由语言自身的虚拟机解决2:由于脚本语言的字节码需要由虚拟机执行,而不像机器代码这样能够直接执行,所以运行速度比编译型语言差不少Lua使用的是基于寄存器的虚拟机实现方式,其中很大的原因是它的设计目标之一就是尽可能高效...

2020-02-10 12:00:27 375

原创 计算机基础

1:操作系统原语操作系统层面上的“原语”(比如 write 之类的系统调用)是不可中断的一组机器指令,对程序员来讲的确是不可分割的最小单位。但是这写系统调用本身还是用好几句汇编语句组成的(对于 Linux 来说是 C 语言),因此定义“原语”的前提是观察者所处的位置。比如就在操作系统的这层上,read,wirte,wait这些个系统调用自然就是最“原始”的词汇;2:进程通信方式...

2020-01-10 19:49:15 150 1

转载 UGUI 查找按钮名称

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

2019-12-13 10:55:22 175

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

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

2019-12-11 18:38:45 350

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

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

2019-12-11 15:54:36 238

转载 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 590

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

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

2019-12-10 14:50:58 259

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

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

2019-12-09 19:40:40 417

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

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

2019-12-09 16:14:20 664

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

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

2019-12-08 15:12:00 566

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

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

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

原创 Unity 网络游戏同步方式

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

2019-12-06 18:18:00 543

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

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

2019-12-06 15:14:40 179

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

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

2019-12-05 20:28:50 725

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

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

2019-12-04 17:22:11 463

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

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

2019-12-04 14:41:05 77

原创 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 211

转载 A* 寻路算法

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

2019-12-03 17:34:55 255

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

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

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

转载 Unity骨骼动画优化

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

2019-12-02 17:18:10 416

原创 Unity 动画压缩及其优化

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

2019-12-02 00:57:31 1178

原创 Unity 音频资源优化

一:音频参数介绍1.1:Unity3D游戏引擎一共支持4个音乐格式的文件.AIFF 适用于较短的音乐文件可用作游戏打斗音效 .WAV 适用于较短的音乐文件可用作游戏打斗音效 .MP3 适用于较长的音乐文件可用作游戏背景音乐 .OGG 适用于较长的音乐文件可用作游戏背景音乐导入前的声音格式选择 短声音:.aiff和.wav 长声音:.mp3和.ogg...

2019-11-29 11:56:20 328

转载 Unity3D各平台路径(包括手机内置存储路径、SD卡等等)

关于Unity3D在各平台上的路径问题,网上有好多的资料,如下是比较好的参考资料:1、http://www.manew.com/thread-23491-1-1.html2、http://www.xuanyusong.com/archives/26563、https://blog.csdn.net/qq_37240033/article/details/54906715这里...

2019-11-28 16:27:53 195

转载 C#中的强引用和弱引用

我们平常用的都是对象的强引用,如果有强引用存在,GC是不会回收对象的。我们能不能同时保持对对象的引用,而又可以让GC需要的时候回收这个对象呢?.NET中提供了WeakReference来实现。弱引用可以让您保持对对象的引用,同时允许GC在必要时释放对象,回收内存。对于那些创建便宜但耗费大量内存的对象,即希望保持该对象,又要在应用程序需要时使用,同时希望GC必要时回收时,可以考虑使用弱引用。一:...

2019-11-28 15:59:46 309

转载 Unity3d DOTween 插件 详细使用方法

Tween的移动类型有很多种,比如匀速运动、加速运动、减速运动,等等。如果你拿捏不准你需要用什么移动类形式。http://www.robertpenner.com/easing/easing_demo.html你可以在这里预览一下那种移动类型更佳适合你。using UnityEngine;using System.Collections;using DG.Tweening; /...

2019-11-27 18:30:13 70

转载 C++对象模型

何为C++对象模型?C++对象模型可以概括为以下2部分:1、语言中直接支持面向对象程序设计的部分;2、对于各种支持的底层实现机制。语言中直接支持面向对象程序设计的部分,如构造函数、析构函数、虚函数、继承(单继承、多继承、虚继承)、多态等等。本文重点介绍底层实现机制。在C语言中,“数据”和“处理数据的操作(函数)”是分开声明的,也就是说,语言本身并没有支持“数据和函数”之间的关联...

2019-11-27 18:23:33 39

原创 设计模式的六大原则之六(开放封闭原则)

原则6:开放封闭原则核心思想:软件实体应该是可以扩展的;也就是,对扩展开放,对修改封闭;定义一个软件实体如类、模块和函数应该对扩展开放,对修改关闭在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。因此,当软件需要变化时,尽量通过扩展软件实体的行为来实现变...

2019-11-27 11:33:35 73

原创 设计模式的六大原则之五(迪米特法则)

原则5:迪米特法则核心思想:一个对象应该对其他对象保持最少的了解(即:只与直接的朋友通信)定义一个对象应该对其他对象保持最少的了解类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。因此,尽量降低类与类之间的耦合。自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论是面向过程编程还是面向对象编程,只有使各个模块之间的耦合尽量...

2019-11-27 11:29:23 79

原创 设计模式的六大原则之四(接口隔离原则)

原则4:接口隔离原则核心思想:使用多个小的专门的接口,而不要使用一个大的总接口;定义客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。举例来说明接口隔离原则:未遵循接口隔离原则的设计这个图的意思是:类A依赖接口I中的方法1、方法2、方法...

2019-11-27 11:16:46 74

原创 设计模式的六大原则之三(依赖倒置原则)

原则3:依赖倒置原则核心思想:依赖于抽象(就是对接口编程,不要对实现编程)定义高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。以抽象为基础搭建起来的架构比以细节为基础搭建起来的架构要稳定的多。抽象指的是接口或者抽象类,细节就是具体的实现类,使用接口或者抽象类的目的是制定好规范和契约,而不去涉及任何具体的操作,把展现细节的任务交给他们的实现...

2019-11-27 11:10:22 74

原创 设计模式的六大原则之二(里氏替换原则)

原则2:里氏替换原则核心思想:子类必须能够替换其基类;名字的由来肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。简单来说的话,就是当我们使用继承时,遵循里氏替换原则。定义注:类B继承类A时,除添加新的方法完成新增功外,尽量不要重写父类A的方...

2019-11-26 20:02:54 61

原创 设计模式的六大原则之一(单一职责原则)

Unity脚本编程众所周知,unity的编程属于脚本化,脚本没有一个具体的概念跟架构, 导致在项目过程中,经常出现哪里需要实现什么功能,就随便添加脚本,结果,就造成了一片混乱,不好管理。更有甚者,自己的写的代码闲置一段时间后,再去想找某个功能的实现,都要在视图中翻来覆去找半天。哎!请容许我在此感叹一声,这还是你写的东西么?因此,一个好的设计模式是多么的重要啊,如何写脚本架...

2019-11-26 18:08:40 135

visual_assist_x.2017

Visual Assist X(vs2017)破解版,以及破解补丁,压缩包内含破解说明,需要的朋友可以下载!

2018-06-25

UnityShader 用Plane实现旗帜飘扬效果

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

2018-05-02

Unity Shader - Sprite Shader之简单抠图

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

2018-05-30

UnityShader 描边效果

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

2018-05-17

Build Report Tool 自述文件

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

2017-03-01

VS调试利器autoexp.dat

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

2017-07-05

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

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

2018-05-18

Unity Shader - 3D流光效果

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

2018-05-22

Unity Shader-死亡溶解效果

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

2018-05-22

Unity Shader - 后处理:高斯模糊

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

2018-05-25

Fast Shadow Receiver

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

2017-03-07

Unity框选效果

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

2016-11-01

Avatar换装系统

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

2017-03-21

UnityShader 序列帧动画效果

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

2018-05-15

UnityShader 实现2D流光效果

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

2018-05-09

Unity Shader - 隐身效果

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

2018-05-23

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

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

2018-05-23

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

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

2016-11-05

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

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

2018-05-11

Unity资源热更新之AssetBundle

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

2016-12-07

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

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

2018-04-03

Unity Shader 技能冷却效果

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

2018-05-03

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

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

2018-05-16

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

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

2018-05-21

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

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

2018-05-20

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

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

2018-05-23

Unity_LZMA方式的压缩与解压

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

2016-11-30

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

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

2018-05-15

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

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

2013-12-24

Unity Shader-后处理:景深

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

2018-05-26

Unity3D-XML与JSON导出还原场景

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

2016-10-26

Unity3D-XML与JSON解析

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

2016-10-26

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

Simple LOD v1.6.unitypackage

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

2018-04-17

Unity 粒子系统缩放示例

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

2016-10-26

Visual assist x trial key破解补丁

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

2017-06-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

3D游戏引擎 源码+演示

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

2013-12-28

起个名字真的好难啊的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

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

TA关注的人 TA的粉丝

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