自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhutaorun的博客

个人成长之路记录,争取每月一篇。对于内容要加上自己的思考。在理论上实践,在实践中检验理论

  • 博客(90)
  • 收藏
  • 关注

原创 最近的复盘-错误小结

最近线上测试,发现有2个C(概率复现,对玩家没什么影响)级BUG给到我,虽然一直也有出现,但没找到原因。因昨天打包电脑换工位,外面也刮风下雨。宅在家写点内容。小结下最近看到自己所犯的错误。一、线上C级BUG表现:可领取的特效没显示,显示上2/2,也没显示已经领取的打勾显示分析:看到单子的那一刻,我分析下,我觉得逻辑上,加载对应的特效的肯定没写错。那方向锁定了特效的被UI的层级内容挡住了...

2020-04-11 17:46:32 607

原创 Unity里实现Hook函数

title: Unity里实现Hook函数date: 2019-08-07 23:38:23tags: Unity3Dcategories: 技术积累一.什么是钩子函数?先来看一段百科:钩子函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂...

2019-08-08 00:09:56 3367 2

原创 检测文件变化

上一篇讲在Lua文件变化的时候实现自动重载。有2种方式一、assetpostprocessorssetPostProcessor是一个编辑器类,一个资源导入的一个管理器,在资源导入之前和之后可以根据导入的资源做一些设置和一些数据的修改,比如网格,纹理的压缩,模型添加组件等。当资源导入之前和之后都会发送通知,可以根据不同的资源类型,在导入之前和之后做不同的处理public class LuaReLoadProcessor : AssetPostprocessor{ protected c.

2020-12-15 16:50:54 626

原创 Lua热重载

之前项目用Lua的模块很少,确实没关注是否在客户端部分实现热重载。因为项目的服务器开发是C++和Lua的组合,在配合处理开发的时候,服务器脚本实现热重载。在客户端使用Lua的模块越来越多,也有人更多的同事开始用Lua开发。为了提高开发效率,觉得还是可以花点时间在客户端实现下Lua热重载。Lua的特点:基于寄存器的虚拟机,简洁的语法,高效的编译执行,容易嵌入的特性。Lua在国内互联网技术上的应用也占领不少市场,redis,openresty, skynet等等都能看到Lua忙碌的身影。一、原理函数r.

2020-12-13 15:23:50 1835

原创 Lua的多重继承实现

之前讲过在Lua中实现面向对象,今天详细聊下多重继承继承可以重新定义从基类继承的任意方法。只需要编写一个新方法就行了。Lua语言中的对象有一个有趣的特性,就是无须为了指定一种新行为而创建一个新类。多重继承1.多重继承之在多个类中查找一个字段其实多重继承没什么特别的,除非两个将要被继承的类有相同的函数名和属性,否则,处理起来很简单。无非就是在多个table中查找某个字段而已,不简单吗?Lua里的继承就是在别人的table里查找自己不存在的字段罢了。那么,单继承与多重继承的差别也在这里,一.

2020-11-29 20:51:51 1265 4

原创 Lua的OOP实现

最近一直没在偷懒,在收集各种开源项目中OOP的实现方案。关于其中的理解,因为给新人指导,就要求自己能够很好的理解,并讲解出来。教会也是给对于知识理解的更高阶段。一、实现OOP核心是Metatable和__index方法理解OOP中类继承多重继承可见我上一篇文章Lua的metatable和Lua的面向对象实现二、lua 的作者推荐了一种方案来实现 OOfunction class(def) local class = {} local parents = {} .

2020-10-25 23:33:41 776 1

原创 Lua的metatable和Lua的面向对象实现

对于项目的Lua的内容进行梳理,有些设计只是使用,但没有明白为嘛这样写。《Lua程序设计(第四版)》再读了一次就豁然理解了。lua的metatable,元表可以对2个表进行操作的函数元表是面对对象领域中的受限类。像类一样,元表定义是实例的行为。不过,由于元表给出了预定义的操作集合的行为,所以元表比类更受限;同时,元表也不支持继承。lua语言中的每个值都可以有元素了。每个表和用户数据类型都具有了各自独立的元表,而其他类型的值则共享对应的类型所属的同一个元素。可以使用函数setmetatable来设置.

2020-09-26 22:23:03 290

原创 个人最近踩的坑

6月份初稿,在6月-8月遇到的问题,总结反思.也是目前都已经解决掉的问题一、半圆组件初始化显示异常在用一个半圆组件。让item分布在恰当的位置显示,只有一个的时候居中,有2个时候在偏移30度的地方显示。但是打开界面第一次的时候,位置总是异常。当时UE加组件的时候,并不清楚要这样。只是让2个角中一个显示就行了。后来UE告诉要程序控制一下组件。看了给外部调用的组件,就一个RefreshAll()函数,很简单。但界面打开第一次就异常了。当时着急回家参加好兄弟的婚礼,就没细去看组件的代码。婚礼结束回.

2020-09-06 20:40:53 387

原创 写Shader的IDE工具合集

写了一段时间shader,觉得还是有必要找个合适的IDE,以达到事半功倍的效果,提高效率。1.最早官方的MonoDevelop编辑器2.Visual Studio3. Visual Studio Code +扩展组件unity3d-pack其中unity3d-pack包含ShaderlabVSCode(Free)4.Visual Studio 2017 + HLSL Tools for Visual Studio安装教程5.Visual Studio +ShaderlabVS官方商店介.

2020-06-10 10:03:46 4871

原创 Unity-Apk解包

在上海居住隔离的时候,整理了下为知笔记。发现了这篇于2018-06-07写完的,内容或许有陈旧之前解过自己项目的包的代码,研究assetBundle打包的时候,像把bundle解压出来看。结合看来就一个包的逆向。步骤改名解压将".apk"结尾的android包,改为".rar"。可以等到以下几个文件[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传...

2020-02-03 11:40:28 17264 2

原创 关于项目的优化杂谈

在已经过去的两个月中花了3周,总结了下龙2中的优化内容,目标是为了新的项目做前期的规划;涉及相关的项目中细节内容,不详说,说下哪些可以规避的问题一.工具类开发1.查找重复或冗余未使用的资源2.查找超过1024尺寸的图片工具并加入每日检查3.添加对于资源检查的工具对于美术资源的检测,对于资源的规范性的检测,可以减少一些资源是否合理的检测代码。二.最小的Dome测试1.对于引入第三库...

2019-12-01 11:40:06 252

原创 游戏同步

早上在翻个人博客文件夹的时候,发现这篇18年10月30日写完的,再去翻了个人博客里,确实没发出来。随便把当时写的手稿也发上来。游戏同步:帧同步和状态同步帧同步:服务器负责转化客户端的操作,每个客户端在固定的逻辑帧执行该帧所有客户端的操作命令,通过在严格一致的时间轴上执行同样的命令序列得到同样的结果。主流的老牌RTS游戏都是帧同步:星际争霸、war3状态同步:服务器承载所有计算,客户端只做...

2019-06-12 10:31:31 638

原创 关于动画结束的处理

title: 关于动画结束的处理date: 2019-05-04 23:03:50tags: Unity3dcategories: 工作反思一时兴起,写了这一篇文章。在实际开发中为了更好的表现,需要在一段动画播放后,再做别的行为这篇文章3月6日开始定题,3月22日写完初稿,5月4日再补充一点,今天发布。一.不同的动画组件动画美术直接编辑动画,定位到要变化挂点的帧(比如24...

2019-05-04 23:12:06 594

原创 帧同步的逻辑工程维护

title: 帧同步的逻辑工程维护date: 2019-02-03 11:52:33tags: 工作反思 帧同步categories: 技术积累目前在做其他项目,之前维护接近一个月的逻辑工程,觉得写点什么才能对的起这段时光。当然来说,我也觉得做的不够好。既有经验的问题,也有在思考需求的不明确。在时间紧迫情况下,会有动作变形。一.接手前的状况客户端主要逻辑逻辑是使用C#写,但是逻辑...

2019-02-03 11:57:54 274 1

原创 再谈优化

title: 再谈优化date: 2018-11-01 23:04:58tags: Unity3D 优化categories: 技术积累之前项目的主程说优化口诀,优化就三样。算法优化,把CPU的事情放到GPU,都不行了就开多线程干。经历目前这个项目的优化,加上看了一些UWA的文章。一.优化的目的对程序员来说,提高“性能”;性能是关于计算机所需花费的时间和内存空间占用,宏观上保持...

2018-11-01 23:10:33 213

原创 一个神奇的bug

title: 一个神奇的bugdate: 2018-09-16 16:53:53tags: 工作反思 帧同步categories: 技术积累项目是用帧同步做的项目,之前做了一点战斗相关的功能,对于帧同步有一些认识。一.宝箱对应的标识并没有消失详细内容:接手新的空投改版任务,修改一个版本结束后,一直报第一圈第一个宝箱开启,场景中的模型消失,但对应的UI层的标识没有消失。跟着下来是...

2018-10-31 23:54:29 273

原创 模型在UI上显示

接到的任务需求是在将3d模型的内容在UI上显示前言梳理了目前有3个种方式,当然没有好坏之分,只有合适与否。在开源项目中SomeTips的Scenes文件夹中,加入3DUIWayNo1-3的场景,看到以上的实现方式。UI和场景的混合实现Camer是skyBox直接与UI混合。如果在放在UI节点下,因为在同一层级下,通过控制Z值设置前后的关系。RenderTex...

2018-05-31 23:52:52 1531 2

原创 UWA-Day-2018分享

4月21和22日在青松城酒店,参加uwa的大会。前言uwa作为在unity优化方向的专业团队,在支持各个公司的产品优化的基础上,也等到了一些很有意思的内容。 目前在使用uwa的unity版本分布情况,目前主要使用的版本还是5.3-5.6居多 还有游戏类型也有不同的变化,有卡牌三消=》arpg=》moba=》沙盒游戏(吃鸡等等) uwa团队讲了,unity引擎移动游...

2018-05-06 18:21:05 563

原创 Unity中音效插件

这一篇文章是3月初开始写的初稿的,在听了公司邀请Wwise的人来演讲后,继续完善这篇文章。首发于(http:zhutaorun.win)一.为什么使用第三的插件因为unity本身做的音效系统做的不够好,对于了很多的声音效果确实没办法满足,需要更多复杂的效果原生满足不了因为第三插件,让程序与音效师之间的配合更方便多了,原来的合作方式是程序需要很多的工作,而音效师能够发挥的空间...

2018-05-06 18:20:23 3332

原创 代码质量

前言 项目老大回家之前,让我和另一个人刚入职的程序,看新的一版的战斗UI的案子。但工作推进缺交给了原来的程序负责。只有4天的开发时间,就由原来的人负责。 在验收时间之前,出了一个中间版本,有几个问题。老大让我帮忙看下。 在重新梳理了下当前的需求,我在代码看到一个按钮逐渐显示的代码。我感觉对了下一个版本的需求。发现目前代码的无法满足,下个版本功能的扩展。梳理下代码U...

2018-03-26 23:49:52 286

翻译 资源文件夹

资源文件夹版本检查:2017.3 - 难度:高级这是关于资产,资源和资源管理系列文章的第三章。本章讨论资源系统。这是一个允许开发人员将资产存储在名为Resources的一个或多个文件夹中的系统,以及使用资源在运行时从这些资产加载或卸载对象的系统。2.1.资源系统的最佳实践不要使用它。这个强有力的建议有几个原因: * 使用Resources文件夹会使细粒度的内存管理...

2018-03-20 21:41:29 1209

翻译 AssetBundle使用模式

AssetBundle使用模式版本检查:2017.3-难度:高级这是关于资产,资源和资源管理的系列文章的第五章。本系列的前一章介绍了AssetBundles基础知识,其中包括各种加载API的低级行为。本章讨论在实践中使用AssetBundles的各个方面的问题和可能的解决方案。管理加载的资产在内存敏感的环境中仔细控制加载的对象的大小和数量非常重要。从活动场景中移除时,U...

2018-03-20 21:40:54 299

翻译 AssetBundle基本原理

AssetBundle基本原理版本检查:2017.3 -难度:高级这是涵盖Unity5资产,资源和资源管理系列文章的第四章。本章讨论AssetBundles。它介绍了构建AssetBundles的基本系统,以及用于与AssetBundles进行交互的核心API。具体来说,它讨论了AssetBundles本身的加载和卸载以及AssetBundles中特定资产和对象的加载和卸载。有...

2018-03-20 21:39:31 1889

翻译 资产,对象和序列化

资产,对象和序列化版本检查:2017.3 - 难度:高级这是关于Unity 5中的资产,资源和资源管理的系列文章的第二章。本章将介绍Unity序列化系统的深层内容,以及Unity如何在Unity编辑器和运行时维护不同对象之间的强引用。它还讨论了对象和资产之间的技术区别。这里涵盖的主题是理解如何有效地在Unity中装载和卸载资产的基础。适当的资产管理对于保持加载时间短和使用内存使...

2018-03-20 21:39:01 418

翻译 [翻译]资产,资源和AssetBundle

资源,资产和AssetBundle来自官方的教程内容AssetBundles和资源的使用指南版本检查:2017.3 - 难度:高级这是一系列文章,提供Unity引擎中资产和资源管理的深入讨论。它力求为专业开发人员提供关于Unity资源和序列化系统的深入源代码的知识。它考察了Unity AssetBundle系统的技术基础和当前使用它们的最佳练习 。整个指南分为4章:...

2018-03-20 21:38:06 287

原创 游戏项目中的美术,策划文档怎么管理

其实之前就好奇其他一些项目是怎么管理美术和策划文档,今天看到游戏项目中美术资源,策划文档等这些非代码文件需要加入到版本控制中去吗? - 知乎,决定把自己看到和听到一些组织方式总结下。整个包结构项目名称 策划文档美术原始素材客户端(包含导入项目的资源资源)服务器代码其他文件针对多版本项目版本名称 策划文档项目名称 客户端 不同版本的美术资源和配表

2018-02-01 23:20:54 2496

原创 资源管理

每个游戏都是有种类繁多的资源(有时候称为资产或媒体的构成),例如网络、材质、纹理、着色器程序、动画、音频,关卡布局、碰撞数据、物理参数等。游戏资源必须妥善保管,这包括两方面,一方面是建立资源的离线工具,一方面是在执行期载入,卸下及操作资源。因此,每个游戏都有某种形式的资源管理器。每个游戏资源管理器都有两个元件组成,这两个元件及独立又相互整合。其一负责离线工具链,用来创建资产及把它们转换成引擎可

2018-02-01 01:20:52 946

原创 关于游戏测试

一.人员构成制作人:项目整体负责人1.负责游戏研发环节2.负责游戏运营环节3.负责项目人员管理4.负责项目事务管理策划剧情策划:负责规划游戏中的各种剧情、故事、背景等系统策划:设计游戏中各种系统的规则数值策划: 规划游戏中各种资源的产出、消耗等关卡策划: 设计游戏中各种关卡程序:代码实现人员,负责把策划的设计及美术资源等通过编码实现成可玩

2018-02-01 01:18:43 7679

原创 缓存命中

缓存命中游戏开发者可分为两类:在他们的游戏引擎中使用STL模板库之类的。以及不使用的。一些开发者认为STL内存分配模式(memory allocation pattern)不高效,也导致内存碎片问题,使STL不能在游戏中使用。一些开发者认为STL的强大和方便超过它的问题,而且大部分的问题还是可以变通解决,笔者个人认为STL在PC上可以无障碍使用。因为PC上可以无障碍使用虚拟内存(virtual me

2017-12-18 23:45:49 3476

原创 Unity小技巧-清除缓存

创建新帐号的时候,默认给选择服务器。目前创建新账号,会记录上个帐号的选择服务器id。如何判断?在移动平台,可以通过服务器记录上次登录的服务器id,或者服务器不记录的话,可以用PlayerPrefs.GetInt(“ServieId”);在PC上要清除临时文件。在PC测试通过打开注册表,清除文件的缓存。打开项目,看到项目的PlayerSettings。在CompanyName:com.ga

2017-11-30 21:15:30 16092

原创 struct 结构体类型的大小计算

关于偏移量偏移量指的是结构体变量中成员的地址和结构体变量地址的差。结构体大小等于最后一个成员的偏移量加上最后一个成员的大小。显然,结构体变量中第一个成员的地址就是结构体变量的首地址。由于存储变量时地址对齐的要求,编译器在编译程序时会遵循两条原则:一、结构体变量中成员的偏移量必须是成员大小的整数倍(0被认为是任何数的整数倍)二、结构体大小必须是所有成员大小的整数倍。 数据类型自身的对齐值类型

2017-11-30 21:09:49 2197 4

原创 MVC、MVP和MVVM的图示

MVCMVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写。它表示的是一种常见的客户端软件开发框架。MVC 的概念最早出现在二十世纪八十年代的施乐帕克实验室中(对,就是那个发明图形用户界面和鼠标的实验室),当时施乐帕克为 Smalltalk 发明了这种软件设计模式。 MVC优点由于MVC很好的分离了视

2017-11-28 23:34:27 390

原创 自动上阵功能开发的小结

最近一周中周一体检,周二发了一天低烧,周三才好一些。解决一个自动上阵的问题,截止到昨天晚上,算是最终解决问题。槽点这个功能没有案子,很早之前的案子也找不到。所以只能看代码。而我一边晕着看着代码,一边理当中的逻辑。从功能划分设计的内容:主将=》副将=》武器。具体操作:下阵=》界面刷新=》上阵=》界面刷新对应到数据层:清楚数据=》设置新数据,整个过程都是客户端给服务器发协议,设置的计算是客户端来

2017-11-28 23:33:15 168

原创 实现轮胎印

接到一个任务,实现一个轮胎印记。特效用粒子做的效果, 感觉不是很好。主程大哥说,那程序来实现吧。关键词主程大哥,给了一些关键词。TrailRenderDecal在项目使用的版本上,纹理贴图是被拉伸的,实际是要的纹理复制使用,看网格的效果如下,在SomeTips的skidmarksTest.sence 看到Unity5.6.2.f上,使用TrailRender可以实现想要的效果,demo

2017-09-24 15:27:11 4591 1

翻译 【翻译】Unity3D车辆的滑动效果

取得作者的同意的 原文 Unity开发者的技术文章。编辑:这个skidmark系统现在在GitHub上。 很久以前,Unity发布了一个汽车教程,为汽车提供了一些很好的滑动标记,但是skidmarks脚本做了一大堆不必要的东西,并产生了一个巨大的GC问题,因为它运行,导致垃圾收集器出现大约一秒一次,使用大约25%的CPU在框架中收集一堆网格。在Scrap的早期版本中,我已经有了一些skidm

2017-09-24 15:25:57 1739

原创 Shader的纹理

一直在看《Unity shader入门精要》,纹理这章的划线重点部分笔记,关于纹理采样的内容。纹理是使用一张图片来控制模型的外观。纹理映射技术,把一张图“黏”在模型表面,逐纹素地控制模型的颜色。在OpenGL中纹理空间的原点位在左下角,在DirectX中,原点位于左上角。Unity做了在DirectX平台上翻转屏幕图像纹理 第一个属性是纹理类型,选择合适的类型,让Unity知道我们的意图te

2017-09-01 00:02:58 562

原创 如何快速熟悉一个老项目

加入新的项目快一个月了。写了两个简单功能,做了一个比较复杂的功能。基本上也熟悉了一些内容了。作为思考怎么让自己更快的熟悉项目。先玩游戏本身正常情况下,玩到一定级大部分的功能就熟悉了,对关键模块的内容就了解了。根据产品组成部分熟悉安装会有资源更新,这涉及bundle的管理以及大小包是怎么样设计游戏注册创建帐号,是什么做数据格式传输的,JSON还是protobuf,序列化和反序列化渠道不同,

2017-08-31 22:57:52 1982

原创 Unity的内存优化以及在移动平台上的优化

在面试上有被问到这个两个问题,结合自己经历过的项目和看过的优化方案。做一次总结。内存里有什么Unity3D游戏引擎是如何分配内存的。有三大部分Unity3D内部的内存 Mono的托管内存(值类型和引用类型) 第三方引入的DLLUnity3D内部的内存资源:纹理,网格,音频等等 GameObject和各种组件 引擎内部逻辑需要的内存:渲染器,物理系统,粒子系统 当然还有这样的分类资源内存

2017-07-30 18:45:55 1396

原创 准备入职了,写点东西

前言从6月16日起,被通知项目解散,(说好的半个月的薪水,已经拖了半个月了,第二次遇到了拖薪,真的很心烦)。17日去苏州见我妈,没吱声,自己失业了。回来休息一周。然后更新求职状态,准备去面试了。主程看着项目情况不好,还有之前认识的老板找他,准备成立一家公司。算是有个保底的offer,后来这个机会有没了。初期刚开始面试,心态不对。觉得有保底的offer,在希望薪水上和面试准备上完全没准备。这个时候期望

2017-07-30 16:27:35 492

原创 Unity资源制作要求

模型面数要求武器面数:武器模型控制在150个三角面,187个顶点以内。贴图控制在1张,最大256*256,最好128*128。场景面数 场景(地形、建筑、其他装饰物)面数控制在10000面左右,贴图控制在最多2张512*512。主角面数 主角模型控制在900-1300个三角面(以最终导入unity3d中的三角面数量为准)。贴图控制在1张,最好256×256,最多512×512。小怪面数 小怪

2017-06-30 23:57:44 795

空空如也

空空如也

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

TA关注的人

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