7 NxShow

尚未进行身份认证

努力学习中

等级
博文 73
排名 3w+

【unity】动态图集 dynamic atlas (runtime atlas)

不管NGUI还是UGUI,图集都是在制作期间就生成了的,运行时是一张大图,这样做的好处在于我们可以在一定程度上去合并批次,但是图集通常在制作过程中,会分成commonatlas和系统atlas两类,一个界面prefab至少会用到两张图集,就会出现ABA的图集穿插打断合批的情况。还有一种游戏内容多了以后,各种图片也相应的变多,类似图标、commonatlas这种图集,一张2048x2048可能就放不...

2019-05-31 23:57:55

【面经】腾讯U3d面试面经 帧同步方向 (一)帧同步如何解决不同步的问题?

解决不同步问题首先考虑什么是不同步的问题,为什么会出现不同步的情况。那么什么是不同步的问题呢?帧同步是由客户端计算,发送命令给服务器,服务器转发命令达到两边客户端显示一致。服务器是不知道具体逻辑的,所以如果两边客户端计算的某些变量出现不一致的时候,就会出现不同步的情况,随着时间的推进,一个小小的不同步也会造成滚雪球效应,最后的结果可能就南辕北辙了。所以为什么会出现不同步的情况,也很好解释了...

2019-03-10 20:11:38

【面经】腾讯U3d面试面经 帧同步方向(总)

近期拿到了一个腾讯的offer,记录一下面试过程。我找的内推,面试的流程如下:上传内推简历,接着马上被HR转到项目组里面,一个小时左右面试官电话过来约面,接着电话面,然后去科兴面,最后HR面,OFFER到手。总的来说腾讯的面试流程还是挺简洁的,听说有人面了很多很多面,我没有遇到这种情况,不过最后给offer时间间隔太久了,一周半才确认。两轮技术面试都是在问帧同步相关的问题,所...

2019-03-07 21:31:54

XLua踩坑

Xlua接入需要反射出所有需要热更新的类,标记上[Hotfix]这样的特性,刚开始我想的是通过代码生成的方式生成cs文件类似下图:但是这种行为会导致几个问题,其一就是项目组成员遇到删除类的时候,需要同步的将这个文件中的类引用也删除掉。另外一个,打包的时候,由于生成的代码在编辑器下运行,新生成的代码并没有编译出来,导致编辑器可能用的是上一版本的代码,造成热更新的不确定性。修改后使用反射做这件事情...

2018-06-05 10:12:53

Unity Update的节点执行顺序

测试一下Update的节点执行顺序,对于想要自己管理Update的有帮助代码如下usingUnityEngine;usingSystem.Collections;publicclassUpdateTest:MonoBehaviour{ //Usethisforinitialization voidStart(){ } //Updateisc...

2018-03-26 17:11:54

解决Mac执行Mono的EXE的问题

因为我们之前都没有考虑到Mac的打包,打包流程都在windows下走的,所有没有考虑到mac下的兼容性问题,今天打mac包发现有部分功能失效了,仔细看发现报了一个Win32的错,如下:"/Volumes/UnityForGame/Game/Client/Assets/Scripts/GameLogic""/Volumes/UnityForGame/Game/Client/Assets/Scri...

2018-03-20 17:42:28

UNITY NGUI IPHONEX完美适配

苹果的IphoneX新增一个安全区的概念,如下图图中绿色区域为安全区,所有可交互的组件全部放在安全区内,只有背景可以延伸出去,达到全面屏的效果我们适配IphoneX采用NGUI通用的锚点去适配。默认的NGUI屏幕适配方案不支持安全区这个概念,我在NGUI每个继承UIRect的组件下新增一个Bool变量InSafeArea,这个变量如果为True则表示这个组件是放置在安全区内的,如果为false则表...

2018-03-14 10:58:37

真机加载AssetBundle闪退,报[Position out of bounds! 1036672174 > 2705600]的解决办法

原因是我们项目今天有个美术上传了本地修改的meta文件,应该是导致了两个资源的GUID冲突了,最后读文件的时候读取到其他的文件去了,解决方案是全部重新Import一次,或者把Library目录删掉重新打开Unity,或者还原这几个Meta文件

2017-12-26 14:32:22

NGUI裁剪粒子的实现,完全仿照原有的NGUI SoftClip逻辑思路,可多层裁剪

参照http://blog.csdn.net/tkokof1/article/details/52107736这一篇博客但是他只实现了单层panel的裁剪,虽然他的算法和NGUI的思路是一致的,但是由于传入Shader的值不同,所以不太好移植成多层Panel裁剪。我重新对他的思路进行整理了,并且将值统一为NGUI的规则,传入的值都用_ClipRange0和_ClipArgs0表示。首先是C#

2017-12-23 17:06:50

Unity特效制作规范

1.      单个特效的粒子数量总数保持在40个以下,一般是20个以下2.      尽量少用序列帧特效3.      用Sprite的特效需要进行合图,再用ETCAlpha分离4.      特效贴图最大的不允许超过1024x10245.      贴图名字规范:区分用于粒子的特效的贴图和用于模型的特效的贴图和用于帧动画的贴图6.      规范化目录,不要新建子目录

2017-12-14 15:14:25

Unity引用自己编译的动态dll遇到的问题

在项目中,有一些代码长期不会改的,想要做成一个dll节省时间,于是就用vs2017新建了dll项目,引用UnityEngine.dll,也顺利的编译出来了,但是导入到unity中却遇到了这么一个问题Internalcompilererror.Seetheconsolelogformoreinformation.outputwas:,,,,解

2017-11-29 12:27:55

NGUI Panel Soft Clip原理分析

这一块我之前一直看得不是很懂,前几个月有一次做粒子裁剪的时候想模仿做,没有做出来,只能靠着很挫的if来判断。这几天又有一个需求想实现图片的裁剪,不可能一个图片一个panel吧,所以就想到了自己实现ClipSprite。在这里先分析一下NguiPanel的软裁剪是怎么实现的。我之前没有看懂的原因是,NGUI对这块做了大量的优化,单独看一行代码,或者一个公式是看不出什么的,单独看shader也

2017-06-05 11:22:41

推荐一个博客,说Unity Shader的

http://blog.csdn.net/candycat1992第一次知道这个博客的时候是搜卡通渲染的时候搜到的,当时并不是太在意。接下来我要为我们的卡通渲染shader做一些优化,尽量接近崩坏3的效果,结果又搜到了这篇博客,发现它说卡通渲染的居然有一个系列的文章。仔细看下去,这位博主居然还是个研究生,服再看一下介绍,博主居然是个妹纸,膜拜擦亮了一下眼睛,博主居然出

2017-05-24 10:26:26

[Unity]Unity性能优化实战之GC优化(1)

首先说一下非常简单的NewGC,创建一个类publicclassA{stringb;}在Update函数中这样调用: voidUpdate(){UpdateNewGC();}voidUpdateNewGC(){Aa=newA();}会

2017-03-09 17:57:01

[Unity]Unity性能优化实战之GC优化(序)

近期项目即将上线,为了抗住数量众多的玩家,流畅的进行多人同屏对战,我们不得不对游戏进行一次彻底的优化。这个系列就是我对于此次优化的一些总结吧。首先优化是足够了解原理的基础上并且辅以相应的工具才能顺利进行,在优化GC里,我们用到了Unity自带的Profiler,这是一个非常优秀的工具,不仅仅支持编辑器下的调试,还可以看到在设备上的信息。那么,为什么要进行GC优化呢?因为GC

2017-03-09 17:33:14

成都几家游戏公司的面经(C++、图形学) ——第一天

1.structA{inta;charb;longc;}问sizeof(A)占多少个字节;考内存对齐2.classA {voidf();}classB{virtualvoidf();}A*a=nullptr;B*b=nullptr;a->f();b->f();问哪个会崩溃?

2016-06-07 11:35:36

dfs

最近在研究图,用的是LuafunctioninitMap() map[5]={}; map[4]={[5]=60}; map[3]={[5]=10}; map[2]={[3]=50}; map[1]={[2]=5}; map[0]={[2]=10,[4]=30,[5]=100};endfu

2016-05-23 23:15:05

一个很简单的后退到上一步的思路

主要思路就是把当前局面全部存下来,要回退的时候,直接覆盖上一局面#include"标头.h"#include#include#includeintcurSituation[4][4];std::stackregretSituation;//随机产生一个新的局面voidnewSituation(){ for(inti=0;i<4;++i) {

2016-04-06 10:32:38

【Unity&C#】运行在主线程的Socket

通常的Socket都是通过多线程的方式来实现的,多线程需要确保线程安全,而且代码量也会相对多一些,由于之前已经实现了Unity的协程功能,现在就可以通过协程来实现单线程的Socket了。首先,封装一下C#的Socket。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usin

2016-04-05 20:13:01

【Unity&C#】写了一个事件分发器

我一直都有一个需求,就是可以很方便的将Socket传进来的二进制解析到具体的某个消息,每个消息都有自己的事件处理。之前有写过一个这样的,但是事件处理必须写在各个消息类里面,这样不是很好。现在借着C#的泛型协变的这个特性,做了一个强类型的事件分发器。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usi

2016-04-04 21:01:56
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周上午根据用户上周的博文发布情况由系统自动颁发。