Unity教程之-事件、委托机制(event、delegate)在unity3d中的使用

 

关于Delegate作用我就不多说了,不懂的童鞋可以戳这看 ,Unity中可以直接使用EventHandler实现事件委托,咱们直接事例吧。

一、场景物体移动结束后事件监听

假如PlayerControl,移动结束后触发MoveComplete事件。 More

Unity教程之-unity3d中分别修改Cube每个面的贴图UV

 

关于UV贴图的文章我们在前面已经介绍过《Unity教程之-Unity3d手动实现UV动画教程》,本篇文章我们来看下修改一个Cube中每个面的贴图UV,也就是贴图中有多个矩形贴图,需要程序从贴图中读取一部分赋值给Cube每个面。

看下最终效果图
unity3d中分别修改Cube每个面的贴图UV More

Unity教程之-unity3d发布到移动端关于中文字体显示问题

 

在unity3d开发中,在界面的字体显示问题,往往会碰到很多问题,比方工程里面是没有问题的,发布到移动端时却出现不显示问题。下面对Android于IOS的问题做下整理,只是针对动态字体。

1、Android

Android由于机型复杂,字体也是很多,往往出现有些机型的手机不显示,那么解决问题就是查手机所支持的中文字体进行添加 More

Unity教程之-Unity3d中实现帧同步

 

帧同步,在大型RPG游戏中应用很广泛,先举个例子说明下,比如说你在游戏世界中移动角色。在中心服务器模型中,物理模拟只会在服务器执行。客户端告诉服务器,角色要往哪个方向移动。服务器会执行寻路而且开始移动角色。服务器紧接着就会尽可能频繁地告知每个客户端该角色的位置。对于游戏世界中的每个角色都要运行这样的过程。对于实时策略游戏来说,同步成千上万的单位在中心服务器模型中几乎是不可能的任务。那么该如何解决同步这个问题呢? More

Unity教程之-Unity3d帧率设置及在游戏运行时显示帧率

 

在Unity3d 中可以通过代码设置 来限定游戏帧率。

Application.targetFrameRate=-1;

设置为 -1 表示不限定帧率,一般情况在手机游戏中我们限定帧率为30 就OK了。

Application.targetFrameRate=30;

但是把这个代码添加到工程之后,在Unity中运行起来发现并没有起作用,于是到官网查看资料,官网的解释是 More

Unity3d动态批处理的问题

 

这段时间做unity3d的优化,主要的入手是减少draw call。
1、代码上主要是把一些零碎的同材质的合并成一个大的mesh。
2、减少不必要的全屏后期处理。把摄像机的rendering path,由deferred修改为forward。这样修改的原因是,我们场景中只是使用了一个灯光,延迟渲染并没有很有发挥其优势,另外使用向前渲染的话,引擎的动态合并会有很好的作用。
经过上面两部分的操作,draw call 减少的非常多,并且游戏在目标平台上也能流畅的运行。但是发现一个非常明显的问题: 在两个物体紧紧挨着的边缘会明显的有裂痕在闪烁,比如一个赛段拼接另一个赛段的连接处。 More

Unity教程之-unity3d扩展Editor编辑器实现拖拽获取文件路径

 

Unity3D项目开发过程中咱们难免会碰到一些需要设置Prefab路径的时候,例如某个攻击动作的特效,虽然我们最终都是通过填表来完成,如果完全手动填表那实在让人崩溃啊,碰到有的特效命名不小心填错了,那就更加无聊了,所以作为程序猿的我们肯定是要通过更加友好的方式来获取各种目录下各种文件的路径了。我们早已经习惯了在各种地方通过拖拽来进行文件路径设置了,那么显然拖拽是非常简单又人性化的设定啊,所以下面我们来学习下载unity3d中扩展Editor编辑器实现拖拽获取文件路径,其实主要就是Event、DragAndDrop的使用了。贴上代码 More

Unity教程之-Unity3d中基于RPC机制实现摄像头视频传输

 

本篇unity3d教程我们来学习下在unity3d中实现摄像头视频传输 ,首先我们要了解在Unity3d中的RPC机制不能直接将视频进行传输,所以要进行视频帧图片到字节的转换,在将字节流进行传输。好了废话不多说,贴上代码! More

Unity教程之-无效Material文件检测工具

 

之前我们讲解过关于在unity3d中开发自定义拓展Editor的实用小工具,为我们之后的开发提供更多的帮助。

随着游戏项目的开发,需求不断的变更,资源不断的改版,项目中难免会预留大量重复的或过时的资源文件,导致我们在查找定位某个资源文件时,依旧在大量的无用文件中筛选,减缓了工作效率。有些强迫症人士更是忍受不了大量的无用文件存在项目中,想一一清理出去。但是我们手动去清理某个无用文件时,有时不能确保它是否真的就是“无用”,也许它依旧关联在某个场景或物体上。所以我今天以清理Material文件为例,做一个“无效Material文件检测工具”。

首先,我们还是先整理一下思路再上代码:

  1. 获取并显示我们在Project视图中选择的物体(可以是任何物体,不过暂时只对Material进行处理,未来可以拓展处理其他物体)
  2. 遍历需要检测的物体路径,目前分为三个检测点:场景、特效、角色
  3. 因为存在一个Material关联多个物体,所以要用Dictionary<string,List<XXX>>的形式存储数据,分类显示
  4. 如果检测到就显示出Material和关联物体的相关信息,没有检测到就标注红色并伴有“删除”按钮以供删除。

具体代码如下: More

Unity教程之-Unity3d实现弹幕的效果

 

弹幕效果想必大家都知道,尤其是在视频播放中,对于逗比的游戏、无厘头、可以让大家吐糟的游戏,如果有弹幕的功能是极好的。那么下面我们就来看下简单的在unity5和 UGUI 中简单的实现下。看下效果图先

More