- 博客(497)
- 资源 (37)
- 收藏
- 关注
原创 想做一款爆火小游戏,应该选择做Steam游戏平台,还是微信小游戏平台呢
从微信小游戏起步,通过 2-3 款轻量级游戏积累经验,再逐步转向 Steam 开发。例如,先制作一款简单的平台跳跃游戏,利用微信生态测试核心玩法,再扩展为 Steam 的完整版本。
2025-04-03 11:43:47
416
原创 给大家分享一波独立游戏开发者必备的免费素材网站,超级实用,建议收藏
提供完整的2D/3D游戏资源包(角色、场景、UI、音效等),支持CC0协议,允许免费商用和二次修改。以上资源库可满足独立游戏开发的核心需求,开发者可根据项目类型(2D/3D、风格、平台)灵活组合使用。:独立开发者社区,提供免费/付费素材,风格多样(像素、卡通、写实)。:高质量2D像素素材(角色动画、场景、UI),部分免费包含动画序列。:4000+免费素材,覆盖天气图标、道具、场景插画等,支持在线编辑。:涵盖2D/3D模型、音效、音乐及代码,社区活跃,更新频繁。
2025-04-03 10:46:36
849
转载 无法访问GitHub,原因以及快速解决办法
综上所述,出现无法访问GitHub的情况,可能是因为网络层面的问题、GitHub本身问题或者个人设备问题,需要通过排查来找出具体的原因并采取相应的解决方案。DNS是一种用于将网址转换为IP地址的工具,如果你的电脑无法访问GitHub,那么很有可能是因为DNS出现了问题。其次,GitHub的服务器出现问题也有可能导致无法正常访问。浏览器问题可能导致你的电脑无法正常访问GitHub,解决方法包括清除缓存、重启浏览器或者使用其他浏览器尝试访问。最后,还有可能是你的个人设备存在问题,导致你无法访问GitHub。
2024-01-19 23:15:54
4435
原创 贝塞尔曲线
一:简介1962年,法国工程师贝塞尔发表,他运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线是最基本的曲线,一般用在计算机 图形学和 图像处理。贝塞尔曲线可以用来创建平滑的曲线的道路、 弯曲的路径就像 祖玛游戏、 弯曲型的河流等。 一条贝塞尔曲线是由一组定义的控制点 P0到 Pn,在 n 调用它的顺序 (n = 1 为线性,2 为二次,等.)。第一个和最后一个控制点总是具有终结点的曲线;然而,中间两个控制点 (如果有的话) 一般不会位于曲线上 。 (1)贝塞尔曲线包含两个控制...
2021-09-18 12:04:01
2738
原创 C++ 多态的实现及原理
C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数; 1:用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。 2:存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。 3:多态性是一个接口多种实现,是面向对象的核心,分为类的多...
2021-05-19 16:18:29
738
转载 Unity iOS使用ASTC格式纹理实践
引言上一篇文章描述了如何在不修改自定义渲染组件的前提下使用alpha分离的纹理来提升 iOS 的透明压缩纹理质量(见这里:https://indienova.com/indie-game-development/unity-alpha-separate/)。在这个方案投入项目开始使用一段时间之后,UI 同学又来找我抱怨了:虽然一些贴图的不透明部分不会显得脏了,但是为什么有些纹理的半透明部分表现这么奇怪呀?这就涉及到上次方案中透明通道贴图格式的选择问题了。在上一篇文章中,我们的透明通道贴图在 iO..
2021-02-26 16:10:27
3240
1
转载 Unity3d实现阿拉伯语适配,不规则特殊字符的处理
前言最近做了阿拉伯语的语言适配。记录一些比较麻烦的点。其实我也没太明白具体和其他语言有什么不同,唯一听懂的就是他们的语序是从右往左的(比如“你好!”,他们的阅读顺序是“!好你”)大概是这样子,具体原理也有很多大神在解释。但可能我没天赋,看的懵懵懂懂索性不去过分理解了。直接用按大神分享的插件就好了。插件用了前辈们都推荐的插件Arabic Support for Unity,免费的。没什么可说的。就一句调用代码,demo里面都有。AssetStore插件地址使用&问题这个插件能满足
2020-12-04 18:10:58
902
原创 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
1235
原创 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
644
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
2754
原创 list sort()委托排序
自定义对象ConfigEquipmentLotteryDisplayInfo ,给List<ConfigEquipmentLotteryDisplayInfo> 集合按优先级排序。public class ConfigEquipmentLotteryDisplayInfo{ [ConfigAttribute(Name = "random_group")] public string _RandomGroup; [ConfigAttribute(Name =
2020-07-09 17:03:42
281
原创 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
962
原创 Lua虚拟机及其工作流程
Lua虚拟机解释性脚本语言与编译型语言区别:1:由于每个脚本语言都有自己的一套字节码,与具体的硬件平台无关,所以不用修改脚本代码,就能运行在各个平台上。硬件、软件平台的差异都由语言自身的虚拟机解决2:由于脚本语言的字节码需要由虚拟机执行,而不像机器代码这样能够直接执行,所以运行速度比编译型语言差不少Lua使用的是基于寄存器的虚拟机实现方式,其中很大的原因是它的设计目标之一就是尽可能高效...
2020-02-10 12:00:27
788
原创 计算机基础
1:操作系统原语操作系统层面上的“原语”(比如 write 之类的系统调用)是不可中断的一组机器指令,对程序员来讲的确是不可分割的最小单位。但是这写系统调用本身还是用好几句汇编语句组成的(对于 Linux 来说是 C 语言),因此定义“原语”的前提是观察者所处的位置。比如就在操作系统的这层上,read,wirte,wait这些个系统调用自然就是最“原始”的词汇;2:进程通信方式...
2020-01-10 19:49:15
308
1
转载 UGUI 查找按钮名称
昨天在做项目的时候,按钮是符合条件才会出现的,所以我需要在点击按钮时获得这个按钮究竟是哪一个,在询问了N多人之后,还是百度告诉了我这个答案。string name = EventSystem.current.currentSelectedGameObject.GetComponent<Button>().name;string name = EventSystem.curr...
2019-12-13 10:55:22
427
原创 Lua协程、GC垃圾回收机制以及如何调用C/C++函数
Lua 协程(coroutine)线程和协同程序区别与联系相同之处:Lua 协同程序(coroutine)与线程比较类似:拥有独立的堆栈,独立的局部变量,独立的指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。不同之处:一个多线程程序可以同时运行几个线程(并发执行、抢占),而协程却需要彼此协作地运行,并非真正的多线程,即一个多协程程序在同一时间只能运行一个协程,并且正在执行的...
2019-12-11 18:38:45
1174
原创 Lua如何实现面向对象?
Lua table(表)table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。table(表)的构造构造器是创建和初始化表的表达式。表是Lua特有的功能强大的东西。最简单的构造函数是{},用来创建一个空表。可以直接初始化数组:-- 初始化表mytable = {}-- 指定值mytable[1]= "Lua"-- 移除引用mytab...
2019-12-11 15:54:36
477
转载 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
1420
原创 Unity 关于帧同步的一些问题
1:帧同步如何解决不同步的问题?可靠稳定的帧同步基础算法 消除浮点数带来的精度误差 控制好随机数参考:Unity帧同步游戏极简框架及实例(附客户端服务器源码)2:帧同步怎么做到流畅的战斗?首先,定义一下流畅的战斗,流畅的战斗并不是代表着游戏的帧数一定要多高多高,而是说游戏的帧数在某一个帧数范围内小规模的变动,例如稳定在30帧这样。对于单机游戏来说,如果要保证稳定在30帧,每一...
2019-12-10 14:50:58
785
原创 Unity 基于帧同步的网络优化方案
帧同步含义游戏客户端接受来自网络的多个客户端的操作,如果这些操作在各个客户端是一样的,那么多个客户端的显示也就一样了,这就带来了“同步”的效果。所以在这种情况下,各个客户端的运算要绝对一致,不能依赖诸如本地时间、本地随机数等等“输入”,而要一切以网络来的操作数据为主。一般来说,大多数的游戏客户端引擎,都会定时调用一个接口函数,这个函数由用户填写内容,用来修改和控制游戏中各种需要显示的内容。...
2019-12-09 19:40:40
960
转载 Unity帧同步游戏极简框架及实例(附客户端服务器源码)
阅前提示:此框架为有帧同步需求的游戏做一个简单的示例,实现了一个精简的框架,本文着重讲解帧同步游戏开发过程中需要注意的各种要点,伴随框架自带了一个小的塔防sample作为演示.哪些游戏需要使用帧同步如果游戏中有如下需求,那这个游戏的开发框架应该使用帧同步:多人实时对战游戏 游戏中需要战斗回放功能 游戏中需要加速功能 需要服务器同步逻辑校验防止作弊LockStep框架就是为了上...
2019-12-09 16:14:20
2490
转载 Moba类游戏中如何处理网络延迟与卡顿
《王者荣耀》技术测试版本出台的时候,延迟非常大,而且还是卡顿,现在看一下帧同步里面比较特别的地方。帧同步有点像在看电影,它传统的帧同步需要有buffer,每个玩家输入会转发给所有客户端,互相会有编号,按顺序输入帧。比如我现在已经收到第N帧,只有当我收到第N+1帧的时候,第N这一帧我才可以执行。服务器会按照一定的频率,不同的给大家同步帧编号,包括这一帧的输入带给客户端,如果带一帧给你的数据你...
2019-12-08 15:12:00
1885
原创 Moba类游戏中如何实现断线重连功能
网络游戏-断线重连1、背景移动网络信号波动频繁,给移动游戏开发者带来诸多困扰,处理不好会造成较差的用户体验以及重复扣道具等严重问题2、网络连接方式通常游戏客户端都是通过创建socket与服务器取得连接,但也会根据使用场景划分成两种连接方式:TCP连接和HTTP连接。1) TCP连接即我们常说的长连接。这种连接方式下socket连接一旦建立,通信双方即可相互发送数据,直到一方终止...
2019-12-08 14:30:59
1464
2
原创 Unity 网络游戏同步方式
对于联网游戏来讲,同步的方式主要分为两种,状态同步、帧同步。1、状态同步:顾名思义,是指的将其他玩家的状态行为同步的方式,一般情况下AI逻辑,技能逻辑,战斗计算都由服务器运算,只是将运算的结果同步给客户端,客户端只需要接受服务器传过来的状态变化,然后更新自己本地的动作状态、Buff状态,位置等就可以了,但是为了给玩家好的体验,减少同步的数据量,客户端也会做很多的本地运算,减少服务器同步的频率以...
2019-12-06 18:18:00
1357
翻译 Unity中事件函数的执行顺序【超详细,图+文】
在Unity脚本中,有一些事件函数会在脚本执行时按预定顺序执行。 该执行顺序如下所述:编辑Reset:Reset是用来初始化脚本属性的,在第一次脚本附在对象上的时候和按下Reset按钮的时候会被执行。第一次场景加载Awake:Awake方法总是在Start方法执行之前和在一个prefab初始化后被调用。(如果一个gameobject处于inactive的状态,则Awake不会被调用,...
2019-12-06 15:14:40
471
原创 TCP与UDP的区别(常见面试题)
相同点UDP协议和TCP协议都是传输层协议。TCP(Transmission Control Protocol,传输控制协议)提供的是面向连接,可靠的字节流服务。即客户和服务器交换数据前,必须现在双方之间建立一个TCP连接,之后才能传输数据。并且提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。UDP(User Data Protocol,用户数据报协议...
2019-12-05 20:28:50
1282
原创 C#中的Lambda表达式和表达式树
Lambda—— 表达式"Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量。它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式。所有Lambda表达式都使用Lambda运算符=>,该运算符读作"goes to"。Lambda运算符的左边是输入参数(如果有),...
2019-12-04 17:22:11
780
原创 C#中委托和事件的区别
委托提供与C++中“函数指针”相同的功能,用于传递和调用函数的引用,是观察者模式的一种实现。事件是用委托实现的,是对委托的额外封装,其本质上是一种特殊的委托。事件是基于委托的,为委托提供了一个发布/订阅机制。可以说事件是一种特殊的委托,他的调用和委托是一样的。事件的作用封装订阅: 事件将委托的订阅操作进行封装,仅允许 += 和 -= 操作,避免程序员在开发时因误用 = 使得委托链断...
2019-12-04 14:41:05
550
原创 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
600
转载 A* 寻路算法
A* 寻路算法概述虽然掌握了A*算法的人认为它容易,但是对于初学者来说,A*算法还是很复杂的。搜索区域(The Search Area)我们假设某人要从A点移动到B点,但是这两点之间被一堵墙隔开。如图1,绿色是A,红色是B,中间蓝色是墙。你应该注意到了,我们把要搜寻的区域划分成了正方形的格子。这是寻路的第一步,简化搜索区域,就像我们这里做的一样。...
2019-12-03 17:34:55
499
原创 Unity有限状态机、层次状态机和行为树的联系及区别
一:有限状态机有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。有限状态机算是Unity开发中一个比较重要的技巧了。在游戏中,我们可能会遇到各种各样的状态,这里我以一个人物为例,我们可能要经常判断人物的生命状态或者人物的运动状态,然后做相应的操作。简单的有限状态机...
2019-12-02 20:29:18
2376
2
转载 Unity骨骼动画优化
一:骨骼动画的原理用Unity做游戏经常会用到3D角色,也就会用到骨骼动画。骨骼动画对性能的影响其实非常大的,在说这个问题之前,先来说说骨骼动画的原理。我之前做过多种骨骼动画,包括写过2D的骨骼动画系统(类似于现在比较流行的龙骨系统),也在flash的stage3D里面写过3D的骨骼模型动画。骨骼动画的原理实际上都是一样的:首先你需要有一个模型,2D或者3D的,这些模型是由顶点组成...
2019-12-02 17:18:10
1883
1
原创 Unity 动画压缩及其优化
一:为什么要做动画优化动画文件在游戏包体和内存中占的比例仅次于贴图,优化好动画文件,就优化了一小半游戏内存。拿我们正在开发的游戏举例,优化后的包体和内存比优化前减少了一百多兆,大概优化掉了五分之一的内存。二:优化思路2.1:Unity引擎对导入的AnimationClip提供三种压缩格式,Off、Keyframe Reduction和Optimal。其中,Off表示不采...
2019-12-02 00:57:31
2864
原创 Unity 音频资源优化
一:音频参数介绍1.1:Unity3D游戏引擎一共支持4个音乐格式的文件.AIFF 适用于较短的音乐文件可用作游戏打斗音效 .WAV 适用于较短的音乐文件可用作游戏打斗音效 .MP3 适用于较长的音乐文件可用作游戏背景音乐 .OGG 适用于较长的音乐文件可用作游戏背景音乐导入前的声音格式选择 短声音:.aiff和.wav 长声音:.mp3和.ogg...
2019-11-29 11:56:20
700
转载 Unity3D各平台路径(包括手机内置存储路径、SD卡等等)
关于Unity3D在各平台上的路径问题,网上有好多的资料,如下是比较好的参考资料:1、http://www.manew.com/thread-23491-1-1.html2、http://www.xuanyusong.com/archives/26563、https://blog.youkuaiyun.com/qq_37240033/article/details/54906715这里...
2019-11-28 16:27:53
386
转载 C#中的强引用和弱引用
我们平常用的都是对象的强引用,如果有强引用存在,GC是不会回收对象的。我们能不能同时保持对对象的引用,而又可以让GC需要的时候回收这个对象呢?.NET中提供了WeakReference来实现。弱引用可以让您保持对对象的引用,同时允许GC在必要时释放对象,回收内存。对于那些创建便宜但耗费大量内存的对象,即希望保持该对象,又要在应用程序需要时使用,同时希望GC必要时回收时,可以考虑使用弱引用。一:...
2019-11-28 15:59:46
1196
转载 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
558
转载 C++对象模型
何为C++对象模型?C++对象模型可以概括为以下2部分:1、语言中直接支持面向对象程序设计的部分;2、对于各种支持的底层实现机制。语言中直接支持面向对象程序设计的部分,如构造函数、析构函数、虚函数、继承(单继承、多继承、虚继承)、多态等等。本文重点介绍底层实现机制。在C语言中,“数据”和“处理数据的操作(函数)”是分开声明的,也就是说,语言本身并没有支持“数据和函数”之间的关联...
2019-11-27 18:23:33
130
原创 设计模式的六大原则之六(开放封闭原则)
原则6:开放封闭原则核心思想:软件实体应该是可以扩展的;也就是,对扩展开放,对修改封闭;定义一个软件实体如类、模块和函数应该对扩展开放,对修改关闭在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。因此,当软件需要变化时,尽量通过扩展软件实体的行为来实现变...
2019-11-27 11:33:35
237
原创 设计模式的六大原则之五(迪米特法则)
原则5:迪米特法则核心思想:一个对象应该对其他对象保持最少的了解(即:只与直接的朋友通信)定义一个对象应该对其他对象保持最少的了解类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。因此,尽量降低类与类之间的耦合。自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论是面向过程编程还是面向对象编程,只有使各个模块之间的耦合尽量...
2019-11-27 11:29:23
224
Simple LOD v1.6.unitypackage
2018-04-17
VS调试利器autoexp.dat
2017-07-05
Visual assist x trial key破解补丁
2017-06-24
Visual Assist X 2114
2017-05-18
Avatar换装系统
2017-03-21
Fast Shadow Receiver
2017-03-07
Build Report Tool 自述文件
2017-03-01
Unity资源热更新之AssetBundle
2016-12-07
Unity3D-XML与JSON导出还原场景
2016-10-26
Unpause.zip
2019-05-17
Unity Shader - Sprite Shader之简单抠图
2018-05-30
Unity Shader - 后处理:高斯模糊
2018-05-25
Unity Shader-后处理:简单均值模糊
2018-05-23
Unity Shader - 后处理:简单的颜色调整(亮度,饱和度,对比度)
2018-05-23
Unity Shader - 隐身效果
2018-05-23
Unity Shader-死亡溶解效果
2018-05-22
UnityShader 法线贴图(Normal Map)与视差贴图(Parallax Map)
2018-05-21
UnityShader 浮雕凹凸贴图BumpMap与法线贴图NormalMap的原理及其区别
2018-05-20
UnityShader 渲染队列,ZTest,ZWrite,Early-Z
2018-05-18
UnityShader 边缘光(静态、动态及遮罩)效果
2018-05-16
UnityShader 漫反射(兰伯特与半兰伯特光照模型-逐顶点和逐像素光照)
2018-05-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人