unity学习笔记【使用2d背景】
2014-11-25 11:37
267 查看
很多游戏的背景是2d位图,下面这个方法还是挺有用的。
做法如下,来自这里
创建一个新的摄像机,取名为”Background Camera”
创建一个新的GUI贴图,取名为”Background Image”
单击Background Image的监视器面板的”Layer”下拉按钮,创建一个新的层,取名为”Background Image”
设置好贴图Background Image的大小和位置,同时将它的层设定为“Background Image”
选中Background Camera,对它的一些属性进行这样的操作:取消勾选Flare Layer和Audio Listener,设定清除标志为Solid
Color,设定深度为-1,先将Culling Mask设为nothing,然后设为Background Image
选中主摄像机,设置清除标志为Depth
Only,将它的Culling Mask里面的Background Image取消勾选
到此为止,即设定了一个屏幕的背景贴图。这里先将背景相机的清除标志设置为Solid Color,那么该相机绘图后的空白区域就会填充背景色,让后通过设置Culling
Mask使其仅仅显示层”Background Image”,也就是说背景摄像机仅仅绘制背景贴图,空白部分用背景色填充。然后主摄像机设置Culling Mask使其不绘制背景贴图,并且将清除标志设置成Depth Only,因为背景相机的深度为-1,那么主相机的深度就为0,背景相机先进行绘制,然后主相机进行绘制,主相机绘制出来的不透明的部分会完全覆盖在前面层级相机的图像上,也就是说主相机的绘制结果会直接覆盖到背景贴图上,这就达到了屏幕背景贴图的效果。
假如要进行满屏显示的话,手动调整背景图的大小显然是不实际的,应该使用代码
但是由于程序运行的时候可能分辨率会发生改变,所以前面的两句应该设置成和分辨率相关的大小
做法如下,来自这里
创建一个新的摄像机,取名为”Background Camera”
创建一个新的GUI贴图,取名为”Background Image”
单击Background Image的监视器面板的”Layer”下拉按钮,创建一个新的层,取名为”Background Image”
设置好贴图Background Image的大小和位置,同时将它的层设定为“Background Image”
选中Background Camera,对它的一些属性进行这样的操作:取消勾选Flare Layer和Audio Listener,设定清除标志为Solid
Color,设定深度为-1,先将Culling Mask设为nothing,然后设为Background Image
选中主摄像机,设置清除标志为Depth
Only,将它的Culling Mask里面的Background Image取消勾选
到此为止,即设定了一个屏幕的背景贴图。这里先将背景相机的清除标志设置为Solid Color,那么该相机绘图后的空白区域就会填充背景色,让后通过设置Culling
Mask使其仅仅显示层”Background Image”,也就是说背景摄像机仅仅绘制背景贴图,空白部分用背景色填充。然后主摄像机设置Culling Mask使其不绘制背景贴图,并且将清除标志设置成Depth Only,因为背景相机的深度为-1,那么主相机的深度就为0,背景相机先进行绘制,然后主相机进行绘制,主相机绘制出来的不透明的部分会完全覆盖在前面层级相机的图像上,也就是说主相机的绘制结果会直接覆盖到背景贴图上,这就达到了屏幕背景贴图的效果。
假如要进行满屏显示的话,手动调整背景图的大小显然是不实际的,应该使用代码
backgroundGUITexture.pixelInset.width = Screen.width; backgroundGUITexture.pixelInset.height = Screen.height; backgroundGUITexture.pixelInset.x = 0; backgroundGUITexture.pixelInset.y = 0;
但是由于程序运行的时候可能分辨率会发生改变,所以前面的两句应该设置成和分辨率相关的大小
backgroundGUITexture.pixelInset.width = Screen.currentResolution.width; backgroundGUITexture.pixelInset.height = Screen.currentResolution.height;
相关文章推荐
- Unity学习笔记-2D横版游戏中的背景移动
- 【Cocos2d-X开发学习笔记】第26期:游戏背景之滚动地图背景(CCParallaxNode)的使用
- 【Cocos2d-X开发学习笔记】第25期:游戏背景之瓦片地图集类(CCTMXTiledMap)的使用
- 【Unity3D】学习笔记(第2记) 2D游戏开发基本技巧之背景制作
- 蓝鸥Unity开发基础——使用字符串学习笔记
- 学习笔记:Unity战斗卡牌游戏(三)-----代码加载预设 及 Tween动画使用及播放回掉
- Unity 学习笔记(1) — Unity简介及简单使用
- Unity学习笔记4 更换编辑器为VS2013及VS的背景图片设置
- cocos2d-x-3.1 经常使用宏 (coco2d-x 学习笔记五)
- 【Unity 3D】学习笔记二十:基础2D游戏界面
- [原创]java WEB学习笔记40:简单标签概述(背景,使用一个标签,标签库的API,SimpleTag接口,创建一个自定义的标签的步骤 和简单实践)
- entlib 5.0学习笔记 在asp.net中使用unity
- Unity学习笔记2 简易2D横版RPG游戏制作(二)
- 【Cocos2d-X开发学习笔记】第26期:游戏背景之滚动地图背景(CCParallaxNode)的使用
- 西门子PLC学习笔记二十-(多重背景数据块的使用)
- Unity Application Block 学习笔记之一使用配置文件
- 【Cocos2d-X开发学习笔记】第27期:游戏背景之贴图地图类(CCTileMapAtlas)的使用
- Unity学习笔记-2D物体的创建与销毁等基本操作
- Unity学习笔记1 简易2D横版RPG游戏制作(一)
- ios学习笔记:关于Quartz2D使用(矩阵操作)