之前已经有几篇文章写打包AssetBundle,但毕竟没有实际在项目中写过都写的比较浅。 刚好最近项目更新Unity5.5.2就顺便由我来更新ui打包流程 这里就把这次的经验写一下 这里还是稍微解释一下打包的基本目的: 打包ui就是把你做的界面打包出来成assetbundle包,讲道理你就把每个界面打成bundle包在游戏中你就可以直接加载来用,但是这样子的话你的每个bundle包就会非常的大,为什么呢,是因为这样子每个界面的bundle包里都包含这个界面用到的字体,贴图atlas,texture,shader还可以有你自己使用的动态组件。 这样子你的同一份资源都复制了很多份出来。 当然不能这...

  JtoKu4tUG9ir   2023年11月02日   25   0   0

ios打包是比较麻烦的,配通一次流程后需要做个笔记把各种插件各种配置在每次打包的时候重新配置,作为一个程序员当然不能接受这么笨的事情,写个脚本让代码去实现这些。 首先,介绍一个标记 [PostProcessBuild] 在函数前写上这个标记,unity在打完包后便会调用这个函数。 所以我们也将用这个标记让unity在包打成xcode项目以后,去改动xcode里面的配置。 而unity也有一个默认的函数给我们使用 staticvoidOnPostprocessBuild(BuildTargettarget,stringpathToBuildProject) target就是打包的目标,是an...

  JtoKu4tUG9ir   2023年11月02日   43   0   0

现在的手游项目如果没个热更新迭代根本跟不上,特别是像我们项目做mmo的更是需要经常改动代码。 而现在的项目一般会选择用lua的方式实现热更新 不过我们项目由于历史原因没有使用,用的是另外一种方案 在项目里的所有GameObject都不挂脚本(NGUI脚本就通过代码的方式挂上),自己写的脚本都不继承Mono并打成dll,然后通过一个启动脚本去打开这些dll。 不过这样就有个问题,ios不能热更。。。 不管怎么样,先来讲讲这种方案要怎么做。 首先有两部分,一部分是打包,一部分是解包。 而包又分为资源包和代码包。 先讲打包 1.资源打包在之前写的另一篇文章有写到 http://blog.csdn.n...

  JtoKu4tUG9ir   2023年11月02日   36   0   0

在unity做强联网游戏的时候一般会选择用tcp来做通信(据说有一种udp的传输具有更高的效率),而接收信息的方法上一般会选择新建一个线程循环读取。 今天在我们项目上看到另外的一种方法。这里记录一下。 首先建立tcp连接 usingSystem.Net.Sockets; TcpClienttcpClient=newTcpClient(); tcpClient.BeginConnect(address,port,newAsyncCallback(this.OnConnect),result); 可以看到这里用的是异步通信回调函数AsyncCallback privatevoidOnConne...

  JtoKu4tUG9ir   2023年11月02日   34   0   0

最近项目更新了Unity5.5.2,顺便更新了项目的ui打包,也更新一下这边的笔记 首先打包分为两部分,一部分是打包成Assetbundle包,一部分是从Assetbundle包解包出来成为可用的资源。 首先说第一部分打包 所有资源都可以打包,甚至不是资源(一些数据)也可以打包,只要你需要。 打包出来的东西都可以直接用,一个字体,一个Texture,一个Prefab,一个场景,都是一打出来成Assetbundle包就可以直接用,但是为什么大家还是要各自开发自己的打包流程呢? 最重要的原因就是,如果不论什么都直接打包,比如你在开发两个UI界面,这两个UI界面都用到同一个Texture,同一个Fo...

  JtoKu4tUG9ir   2023年11月02日   36   0   0

http://www.tuicool.com/articles/Vruuqme NGUI中的Button几乎是最常用到的控件之一,并且可以组合各种组件(比如UIButtonColor,UIButtonOffset,UITweenxx),方便设置Button的各种状态下的属性,几乎可以满足我们的所有需求。 但是对于当Button的isEnabled属性设置为false时,根据设置的disableColor属性设置不可点击时的颜色时,虽然我们设置的灰色,但并不是我们想象中的样子! 设置的是灰色,实际运行结果却还是彩色的,只是暗了一点,并不能够很好地表现出其“禁用”的状态! 1.原理 Unity3D...

  JtoKu4tUG9ir   2023年11月02日   24   0   0

在游戏开发中,经常会因为直接将GameObject,setActive的方式打开关闭,这种方式效果太过生硬而给它加上一个Tween 可能是AlphaTween或者ScaleTween。 再加上一个PlayTween来做控制。 这样子需要在每个GameObject上加上这几个Component不说,还很不好用 所以结合之前用的一个拓展函数的方法,想到一个非常非常方便的方法 (之前的拓展函数文章:http://blog.csdn.net/chrisfxs/article/details/51221892) usingUnityEngine; usingSystem.Collections; n...

  JtoKu4tUG9ir   2023年11月02日   59   0   0

http://blog.csdn.net/chrisfxs/article/details/53445025

  JtoKu4tUG9ir   2023年11月02日   55   0   0

其实这个unity本身就有的函数Mathf.Lerp(),为什么还要自己实现呢。 有一个原因就是这个函数返回的是float型,float型如果数字非常大,转出int时会有精度丢失,也就是转出来的值不对。 而且非常简单。 看下公式 publicintLerp(inta,intb,intv) { return(int)(a(0v)/(01)(ab)); }

  JtoKu4tUG9ir   2023年11月02日   34   0   0
  JtoKu4tUG9ir   2023年11月02日   61   0   0
  JtoKu4tUG9ir   2023年11月02日   65   0   0

http://gad.qq.com/article/detail/7173927 http://blog.csdn.net/chrisfxs/article/details/53232194

  JtoKu4tUG9ir   2023年11月02日   53   0   0

http://blog.csdn.net/chrisfxs/article/details/53232188

  JtoKu4tUG9ir   2023年11月02日   58   0   0

unity本身的发包其实还是挺方便的,国外的游戏基本都用unity本身的发包。 但在国内的游戏有这么多渠道,这个迭代的速度的情况下,就需要一套更高效的发包方式。 接下来讲具体步骤,如果你们项目有热更新会更麻烦一点。 发包优化的目标是做到一键发包,一般发包机会是一台独立的机子,所以 第一步,更新svn 第二步,配置打包信息。根据不同渠道接入不同sdk 第三步,buildapk。 因为我们项目暂时还是测试,所以还没做根据不同渠道接入不同sdk。具体思路是写个xml,在上面填写各种配置信息,版本号,接入sdk名字等。这个会在之后项目做到后面补上 而且我们项目热更新。需要把代码打成dll。所以中间会多...

  JtoKu4tUG9ir   2023年11月02日   54   0   0

摘自http://gad.qq.com/article/detail/38087 公告板Billboarding 我们将根据观察方向来确定多边形面朝方向的技术叫做公告板(Billboarding,也常译作布告板)。而随着观察角度的变化,公告板多边形的方向也会根据需求随之改变。与alpha纹理和动画技术相结合,可以用公告板技术表示很多许多不具有平滑实体表面的现象,比如烟,火,雾,爆炸效果,能量盾(EnergyShields),水蒸气痕迹,以及云朵等。如下文中贴图的,基于公告板渲染出的云朵。 图像处理ImageProcessing 颜色校正ColorCorrection 色调映射ToneMappi...

  JtoKu4tUG9ir   2023年11月02日   57   0   0

这次先说一下mono内存的性能问题查找方法mono主要是代码问题,各种解决方案在其他地方会讲到,首先就是解决每个尖峰,这个会导致gc,mono堆内存申请等问题。 1.先用cube来测 手机上跑一局看看数据 可以看到在这里申请了内存,可以看到。这时候首先有个向下的尖峰,这个是执行了一次gc。然后mono发现,你代码里申请的内存已经超出现在的堆内存,所以只能再申请一块。 所以这事后需要找到这个时刻是在干什么。 2.用Profiler来测 这时候把刚才的那一局在editor上跑一遍。大概找到相同位置对应着上面cube的图可以找到profiler相应的位置 就可以大致找到是哪里在申请内存。 或者这时候...

  JtoKu4tUG9ir   2023年11月02日   49   0   0

NGUI做UI的话,有个功能很常用,比如: 这样的一个界面,如果大图的话一个图集都放不下几张,这时为了省资源,美术会把这个图切9宫。不过这样依然很大,这时就会提出,如果这个图是左右相同的话,左右只出一半,另一半程序自己拼,上下相同只切上面,下面程序拼,上下左右相同的话出左上角,其余自己拼。像这个就会这么出图只出了左边。 自己拼不仅蛋疼,更重要的是拼出来的界面会有黑边,并且在适配不同界面的时候黑边总是会跑出来。这时一般项目组就会拓展一下NGUI的UISprite,做一个镜像功能,直接填充出来右边。像这样:通过选择MirrowType来觉得是左右填充还是上下填充还是上下左右填充。 怎么实现呢,这里...

  JtoKu4tUG9ir   2023年11月02日   72   0   0

首先不知道有没有像我一样,一直不是很清楚Timesteps具体怎么解释的,稍微找了一下: 上面说的是两个物理检测帧之间的时间间隔 如果不是物理的话,可以直接理解为,两帧之间的时间间隔 ----- 接下来开始翻译原文 原文:http://www.kinematicsoup.com/news/2016/8/9/rrypp5tkubynjwxhxjzd42s3o034o8 在Unity社区里,其中有一个辩论的最为激励的话题,就是何如去除游戏中生涩的动作,让它显得自然。这个问题不只是在Unity引擎才有,所有引擎都有这个问题,而且他的产生的原因来自于你的引擎用怎么样的timesteps...

  JtoKu4tUG9ir   2023年11月02日   72   0   0

C里的List<T>本身提供了很多接口可以让你的代码变得非常整洁。很多我也是从项目中其他的程序员写的代码上看到的,学习一下记录一下 详细的当然是去官方帮助文档上看:https://msdn.microsoft.com/zh-cn/library/6sh2ey19(v=vs.110).aspx 最简单的几个add,clear,contain就不多说了,讲几个好用的: 排序Sort().这个之前专门说过,可以看这边:http://blog.51cto.com/13638120/2084838 反序Reverse().     &nbs...

  JtoKu4tUG9ir   2023年11月02日   48   0   0

提供函数方便使用 privatevoidDrawArrow(Vector2from,Vector2to,Colorcolor) { Handles.BeginGUI(); Handles.color=color; Handles.DrawAAPolyLine(3,from,to); Vector2v0=fromto; v0=10/v0.magnitude; Vector2v1=newVector2(v0.x0.866fv0.y0.5f,v0.x0.5f+v0.y0.866f); Vector2v2=newVector2(v0.x0.866f+v0.y0.5f,v0.x-0.5f+v0.y0.8...

  JtoKu4tUG9ir   2023年11月02日   79   0   0
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~