您的位置:首页 > 移动开发 > Unity3D

unity3d显示圆形或异形背景

2016-04-05 16:54 1541 查看
在unity3d里显示圆形的背景。有两种方式,一种是在GUI上显示,通常是用在UI上。另外一种是通过3D的Plane显示,这种时候用在游戏场景里,例如做游戏的小地图。然后,ngui的方式也比较简单。

1、GUI显示

添加背景图片,添加连个图片,分别是透明背景,黑色圆形和黑色五角,png图片。



添加panel,在panel下再添加一个image



把图片背景添加到image上



为panel添加一个mask组件



把圆形添加到panel上



这个时候,就能看见一个圆形的背景图了。



如果把五角形添加在panel上,看到的就是五角形的背景。



2、plane方法

这种方法适合用来做小地图。

首先添加一个Shader



改个名字



双击以后编辑内容

Shader "Custom/Mask"
{
Properties
{
_MainTex("Main Texture",2D)="white"{}
_Mask("Mask Texture",2D)="white"{}
}
SubShader
{
Lighting On
Zwrite Off
Blend SrcAlpha OneMinusSrcAlpha
Pass {
SetTexture [_Mask] {combine texture}
SetTexture [_MainTex] {combine texture,previous}
}
}
}


在ps里面做一个黑底,白圆。存为tga格式



找到导入的tga文件



重新设置属性如下



在场景里添加一个Plane,并把背景拖到plane上



选中生成的材质



将Shader属性改为Custom/Mask



设置Mask Texture属性为 Mask,这个时候在编辑器里就变成圆的了。



需要把摄像机的Clear Flages属性设置为Depth only



运行预览,就能看见圆的背景了。使用的时候,需要双摄像机,一个显示背景,一个显示内容。



3、ngui显示

在ngui里面,也比较简单

首先添加一个panel,设置为Texture Mask,然后把圆形的png图片拖进去



在panel下添加一个ngui对象,我添了一个2d sprite,把背景图片拖进去



运行,ok。ngui果然好用啊

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: