Unity教程之-UGUI元素显示在角色的头顶上

 

在游戏中我们会遇到比如人物角色头顶上要显示角色名字,那么如何在unity new ui即UGUI中实现这种效果呢,下面我们来学习下,我们游戏完全使用UGUI来工作,所以游戏中的很多元素都是UGUI的 Game Canvas画布设置为;World Space , 主要也是为了以后一下牛叉的效果

还有一个UI Canvas画布设置为;Screen Space – Overlay 就是这些元素会在最前方,在屏幕上的。

还有一组是:Spines Layer, 主要是放着spine制作的角色 More

Unity教程之-UGUI实现操纵摇杆

 

最近在做项目是用的unity最新的ui系统UGUI,项目需要做一个摇杆,网上大部分都是用的插件和NGUI做的摇杆,unity自带的摇杆也不怎么好用,而最新的unity4.6.x来了,加入了最新的UI系统“UGUI”,那我们怎么用UGUI来制作摇杆呢,比较出色的摇杆插件《Easy Touch》(很强大),还是主要讲讲我们自己怎么做。

More

Unity教程之-Unity3d初级AI智能躲避障碍物

 

1.引言

阅读《Unity Game AI programming 》第6章后,感觉躲避障碍物算法不是很给力。为了研究和学习Unity,自己改良躲避障碍物的算法。当然,代码没有优化,不过没关系,抛砖引玉,记录思想,学习交流。

2.与原书算法相比变化:

1.启用物理引擎,使用速度和力解决问题。而不是使用的角度和位置

2.加入沿着障碍物行走,即使障碍物宽度很大或物体向障碍物前进的速度过快,也不会发生穿墙而过现象。

3.为配合沿着障碍物行走,并且显得更自然,引入三个速度与障碍物的交互分区。 More

Unity教程之-在Unity3d中使用贝塞尔曲线

 

贝塞尔曲线相信大家都耳熟能详。这两天因为工作的原因需要将贝塞尔曲线加在工程中,那么下面我们将研究的成果就分享给大家了哦。贝塞尔曲线的原理是由两个点构成的任意角度的曲线,这两个点一个是起点,一个是终点。在这条曲线之上还会有两个可以任意移动的点来控制贝塞尔曲线的角度。下面我们来看下效果图,

贝塞尔曲线 More

Unity教程之-合并(Combine)引用相同材质球的网格(Mesh)

 

Unity自带了一个合并网格的功能,Mesh.CombineMeshes 组合网格

function CombineMeshes (combine : CombineInstance[], mergeSubMeshes : bool = true, useMatrices : bool = true) : void

结合网格有利于性能最优化。如果mergeSubMeshes为true,所有的网格会被结合成一个单个子网格。否则每一个网格都将变成单个不同的子网格。如果所有的网格共享同一种材质,设定它为真。如果useMatrices为false,在CombineInstance结构中的变换矩阵将被忽略。

用这函数我们可以把引用相同材质球的网格进行合并达到减少Draw Call,优化性能的效果。

我的基本思路是:将所有的材质球用字典存(相同的只存一个),将引用相同材质球的网格存一个链表中用材质球的名称作为Key值;

然后遍历字典用Mesh的成员方法CombineMeshes()合并相同;

More

Unity教程之- UGUI使用BMFONT制作的艺术字体不能居中解决方法

 

继续上篇文章《Unity教程之-UGUI美术字体的制作与使用》,说下制作字体过程中遇到的问题,在使用 BMFONT 制作的 字体 时,在 Unity 3d 中发现,不能居中对齐。

UGUI使用BMFONT More

Unity教程之-UGUI美术字体的制作与使用

 

游戏制作中,经常需要使用各种花哨的文字或者数字,而字体库往往不能达到我们需要的效果,因此需要一种用图片替代文字的功能。ugui使用艺术字也比较简单,下面我们就来介绍下UGUI美术字体的制作与使用,本文使用BMFont作为字体制作工具,简单讲讲如何制作艺术字体:
1.让美术提交分块后的文字:

UGUI美术字体

2.打开BMFont工具,找到图片管理(Edit->Open Image Manager):

UGUI美术字体 More

Unity教程之-让物体朝摄像机Camera观察方向移动(一)

 

情景一:假设有一个人,他面对北方,他背后有一台摄像机,正巧也是面对北方。现在,他向左转90度,面对西方。此时如果让他向前走,那么有两种情况。

情况一:以自身坐标系向前走。他将会向眼睛直视的方向走,实际上他是向西方走,摄像机看到他是向”右”滴。

情况二:以世界坐标系向前走。他将会向北方走,摄像机看到他是向”前”滴。

由此可见,如果物体旋转了的话,那么以自身坐标系进行移动往往会发生错误,所以在游戏中角色的移动一般都是以世界坐标系进行移动滴。以世界坐标系进行移动的话,是不考虑物体自身的旋转的。 More

Unity资源插件之-Gesture Recognizer手势识别插件

 

下面我们来看一款在unity中可以识别手势的强大插件Gesture Recognizer,先看下截图

Gesture Recognizer More

Unity3D热更新全书-Script脚本篇(三):C#LightEvil语法与调试

 

继续上片文章《Unity3D热更新全书-Script脚本篇(二): 两级分化》,本篇文章我们来学习下C#LightEvil语法与调试下面开始!

调试,这是一个无法规避的问题

C#Light 由于有 词法解释、语法解释、运行时三种情况

所以和C#也是有类似的问题

出错大致可以分为编译错误和运行时错误

拼写出莫名的东西或者语法不正确,会在编译阶段报错,这种错误很好检查,因为

C#Light语法是C#的严格子集,所有的C#Light脚本都可以用C#的标准做语法检查 More