Unity教程

Unity教程之-Unity3d中Sprite(精灵)的切割和导出

 

Unity中经常使用到精灵,尤其是2D游戏中制作动画等!今天我们就学习下精灵的切割和导出吧!

废话不多说,先建议空的工程。

1,打开Unity建工程,同时导入素材进行资源分类,工程不在于大小,这是我们对待它的态度! More

Unity教程之-Unity3d中图片的灰度处理

 

我们平时在做项目时,经常遇到按钮的点击而且还要区分悬浮,点击,禁用的状态,美术要针对一张图片做多个状态图片,资源图片的数量也就增大了,那么打出的包的大小也就跟着上去了,所以我们可以针对原始图片进行Shader处理,得到我们想要的效果!

实现原理:Unity3d中所有的渲染都是基于Shader的,而Shader绑定在Material上,打开一个NGUI例子中自带的Material,得到其使用Shader的文件NGUI中大部分材质都使用的Unlit/Transparent Colored(PS:虽然在Unlit下,但并不是Unity3d内置的,而是NGUI扩展的)找到其片段着色器,在Unity中的路径: More

Unity教程之-定制Project内的特定资源的Inspector面板显示

 

我喜欢在工作之中开发些小工具来增加开发效率,那么本篇文章我们来看下定制Project内的特定资源 的Inspector面板显示 ,目的是为了为了更好的标记 和查找对象。这个定制 不是说对脚本组件的字段等的定制。  而是对Project 内的特定资源的定制。废话不说贴上代码 More

Unity教程之-对UGUI长按事件的实现

 

在使用UGUI过程中,有时我们想长按钮按,执行某个功能,但UGUI只有简单的单击功能,下面我们来看下UGUI长按事件的实现,贴上代码 More

Unity教程之-unity3d更改系统默认鼠标指针

 

最近项目需要替换鼠标的默认图标,实现的效果是初始状态为一种图标,点击鼠标左键要换成另一种图标,按网上通用的方法做了以后,隐藏鼠标指针,在指针的位置画一个图片就可以了,但不知道怎么回事,这种方法画的图标总是比真实鼠标的移动位置慢半拍,也就是有卡顿,鼠标移过去了缓一下画的图标才跟过来(这个问题在不同的电脑上卡顿程度不一样,估计是配置的问题)。 More

Unity教程之-次世代手游美术资源的优化

 

次世代,是日本流传过来的叫法,意思是下一个时代,未来的时代,常说的次世代科技,即指还未广泛应用的现金技术。后来这个名次变成了一个人们的习惯,将次世代变成一个名词,用来代表某类具备特定属性的游戏类型。

随着科技的发展,手机硬件不断升级优化,使我们可以在移动端上实现次世代游戏的画面效果。虽然如此,我们还是受到一些硬件限制的瓶颈,我们不可能像之前制作主机游戏那样“肆意浪费、随心所欲”,必须要优化处理各种美术资源,以便在不同的平台,不同的硬件终端上有一个好的游戏体验。

     性能瓶颈有哪些?

对于一个游戏来说,有两种主要的计算资源:CPU和GPU。它们会互相合作,来让我们的游戏可以在预期的帧率和分辨率下工作。CPU负责其中的帧率,GPU主要负责分辨率相关的一些东西。

总结起来,主要的性能瓶颈在于: More

Unity教程之-Unity C#内存和性能优化技巧一

 

游戏开发要学习的第一件事就是不分配不必要的内存。这样做有很充分的理由。第一,内存是一种有限资源,尤其是在移动设备上。第二,分配内存需要消耗CPU周期(在堆上分配和回收都消耗CPU周期)。第三,在C或C++中手动管理内存,每次分配内存都是引入Bug的契机,Bug会引起严重问题,任何地方的内存泄露都会引起崩溃。

Unity使用.Net或者可以说是一个开源替代品Mono。它的自动内存管理解决了大量安全问题,例如,不能在内存被释放后再使用(忽略了不安全代码)。但是,分配和释放内存变得更加难以预测。

More

Unity教程之-基于Unity3d中的Android游戏优化

 

最近项目进入收尾阶段,之前对项目做了很多优化,mesh合并 ,减少DrawCall和模型骨骼以及物理计算,合并材质球,优化代码等等,在IOS上还好,但是Android上,试过几款手机,从低端到高端,发现性能还是很差,所以又花了几天来研究摸索,终于把游戏性能搞定。记录下来,留作以后参考。

1.    更新不透明贴图的压缩格式为ETC 4bit,因为android市场的手机中的GPU有多种,每家的GPU支持不同的压缩格式,但他们都兼容ETC格式,

2.   对于透明贴图,我们只能选择RGBA 16bit或者RGBA 32bit。 More

Unity教程之-Unity3d热更新动态Protobuff协议

 

首先, Proto协议文件是 服务器和客户端所共享的。 服务器根据它生成对应的语言。   客户端根据它生成对应的语言(Unity中就是C#了)

所以可以想象的是:团队的项目中包括了:服务器project、客户端project、ptotoBuff协议project(这些协议由服务器定义就行了, 然后)

ProtoBuf对于很多人而言并不陌生,应该也在很多项目中得以应用了。 那么现在我们就来看看,在Unity中使用的具体步骤。先看看批处理脚本 More

Unity教程之-Unity3d碰撞器与触发器的区别详解

 

前提:要用collider发生碰撞的话必须是使用力来移动物体。如果只是单纯的位置移动(transform.position)使用这种方法是不行的。必须有了物理的力Rigidbody或者charactercontroller移动才可以用collider的碰撞。

正文:

要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞。如果两个刚体相互撞在一起,除非两个对象有碰撞体时物理引擎才会计算碰撞,在物理模拟中,没有碰撞体的刚体会彼此相互穿过。

物体发生碰撞的必要条件:

两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体或者charactercontroller组件

在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。

碰撞器: 一群组件,它包含了很多种类,比如:Box Collider(盒碰撞体),Mesh Collider(网格碰撞体)等,这些碰撞器应用的场合不同,但都必须加到GameObjecet身上。

触发器 ,只需要在检视面板中的碰撞器组件中勾选IsTrigger属性选择框。 More