每月归档: 二月 2019s


Unity3D 绘制曲线(一):基本原理

轨迹运动是游戏很重要的组成部分。通常说来轨迹可以用函数来表示。即通过一个公式y=f(x),当变量x不断增加时,能得到对应的y。在这个例子中,每经过一帧,x都增加一帧的值,再通过公式计算y的值,将物体的坐标设定到y值对应的位置。从动态的效果看来,即完成了沿轨迹移动。 […]


Unity3D 图片格式更改(三):更改文件属性

接着更改对应的属性,编写如下代码:

在上面的代码中,通过TextureImporter更改相关属性,通过SetDirty将对象标记为需要保存更改。


Unity3D 图片格式更改(二):文件导入回调

首先创建一个名为TextureChange.cs的文件,编写如下代码:

代码编辑保存后,导入新图片,或右键现有资源文件点选Reimport时会输出图片的路径。


Unity3D 图片格式更改(一):接口函数

图片导入到项目中时,默认是Texture类型。对于UI来说,想要将其应用到UGUI中,需要手动更改其类型为Sprite。这步操作本质上不需要人工干预,最优的处理方式是自动完成。同理,UI图片也不需要开启MipMap。它们应该在统一的图片处理流水线中完成。 在Unity中,Asse […]


Unity3D 脚本系统设计(三):自然语言脚本

既然Lua这么强大,我们是否没必要自己编写脚本系统了呢?理论上说,Lua可以应付各种情况,没必要自己写一个解释器,重新造一个轮子。但这里有个脚本开发的友好性问题。使用脚本的人不一定是熟悉程序的人,因此能正确的编写Lua脚本是有一定门槛的。如果是自定义的脚本,就可以将语法设计的更具 […]


Unity3D 脚本系统设计(二):Dota2角色AI参考

对于系统或UI界面没有那么复杂的竞技类游戏,脚本系统也有它存在的意义。Dota2的AI就是这样一套脚本系统,从角色选择、装备合成、技能释放等初级的操作,到分路选择、团战时机判断、角色间配合等团队型决策,都可以通过Lua脚本自由定制。例如,截至本书编写时间,在Dota2的7.x版本 […]


Unity3D 脚本系统设计(一):魔兽世界的参考

很多人知道Lua语言是从魔兽世界开始的。在魔兽世界的聊天中输入

即可运行Lua脚本,输出“Hello WoW”。通过这样的方式,玩家几乎可以通过输入命令做游戏中的任何事。于是有很多人利用这点,制作了很多外挂,来实现 […]


Unity3D 游戏同步浅析(五):帧同步

帧同步是指客户端之间只同步用户的输入指令,例如,向前走、按下哪些技能等等,不同的客户端各自计算自己的结果。由于消耗的流量只取决于指令数,因此会大大减少消息。另外由于消息结构原因,帧同步的速度要比状态同步更快,因此适用于一些高频交互的游戏。 不过由于每个客户端需要独立计算,因此需要 […]


Unity3D 游戏同步浅析(四):状态同步

这里提到的状态同步和帧同步都是广义上的。虽然它们的底层实现都可以基于上面提到的模式,但从广义上上讲,它们的同步思路不同。 状态同步指的是将其他玩家的状态行为同步的方式。例如,怪物的AI控制、角色技能释放、战斗伤害计算等。纯粹的状态同步模式下,这些内容都由服务器运算,只是将结果下发 […]