码迷,mamicode.com
首页 > 编程语言 > 详细

unity3d游戏开发之商人模块开发心得

时间:2015-01-24 11:37:15      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:unity3d培训   unity培训   unity3d学习   unity3d游戏   

技术分享
图0


好啦,闲话不多说,让我们开始吧~
技术分享

图1


这里还是要点名道姓的肯定一下泡菜童鞋,图1中的这部分预设是我刚接手时,搭的,结构如下:
●UI_Shop:整个商店的父物体
●shop_bg:商店的棕色底板背景
●shop_title_bg:横幅商店两个字,包括横幅本身
●shop_head:希娜商店妹子头像
●shop_refresh_Button:刷新按钮
●backbt:返回按钮
●shop_product_bg_00:商品编号00
●shop_product_bg_01:同上
●shop_product_bg_02:同上
●shop_product_bg_03:同上
●shop_product_bg_04:同上
●shop_product_bg_05:同上

没错,不信,我们就来分析商店里的商品需要哪些美术素材。
商品美术素材包括:
品质外框(如 技术分享 技术分享
品种图标(如 技术分享 技术分享 技术分享 技术分享 )【 技术分享 工作量略大】

分类小图标(如 技术分享 技术分享
cost图标(如 技术分享 技术分享

光搜集这些素材费了哥们儿九牛二虎之力啊,纯爷们儿~这还只是第一步,
接下来,在素材够用的情况下,我们开始搭建预设。

呀,如果Declan老湿没有猜错的话,肯定有细心的小蛮牛会发现:
物品的icon基本是长这样子的————> 技术分享 ,是四边的。
而诸如“碎片”或者“灵魂石”的品质外框是类似酱紫————> 技术分享 ,一对角被裁剪的。




“两张图重叠的话,超出外框的部分,该怎么办?”如 技术分享
“如果只是缩小物品icon的scale,即使强行不超出外框,但是整个UI看上去会镂空的,怎么办?”如技术分享

如果电视机前的观众朋友们...呃,不对...是显示屏前的新手读者们也遇到的类似的问题的话,别担心也无需害怕,那只是因为我们新手由于涉世未深且经验不足,缺少遮罩Mask的概念。


技术分享


图2






那么,所谓遮罩,在unity里如何实现呢?

技术分享

图3

如图所示你需要创建一个材质球,并将之着色器选择为我们写的Shader脚本,然后将英雄图标拖到Base项,带Alpha通道的fragment遮罩图标拖到Culling Mask上就可以了。代码如下:
  1. Shader "Custom/DepthMaskShader" {
  2. Properties
  3. {
  4. _MainTex ("Base (RGB)", 2D) = "white" {}
  5. _Mask ("Culling Mask", 2D) = "white" {}
  6. _Cutoff ("Alpha cutoff", Range (0,1)) = 0.1
  7. }
  8. SubShader
  9. {
  10. Tags {"Queue"="Transparent"}
  11. Lighting Off
  12. ZWrite Off
  13. Blend SrcAlpha OneMinusSrcAlpha
  14. AlphaTest GEqual [_Cutoff]

  15. Pass
  16. {
  17. SetTexture [_Mask] {combine texture}
  18. SetTexture [_MainTex] {combine texture, previous}
  19. }
  20. }
  21. }
复制代码

显示效果如4所示
技术分享



Ok,Shader也并非本篇文章的重点,简单的讲解之后,我们开始言归正传。文章出处【狗刨学习网

其实Unity新的UI系统——UGUI已经给我们做好了类似的组件,如图5

技术分享
图5

用法:直接把这组件添加到你需要实现遮罩的带Alpha通道的icon就可以了。

那么,在知晓了遮罩的概念,以及Mask组件的用法之后,我们再来看单个商品预设的层级关系结构就更加思路清晰明了了。如图6

技术分享
图6

如上图所示,预设层级结构关系为:
●shop_product_bg:是单个商品预设,父物体。
●Goods:是具体物品预设的父物体
●full:是如上图短棍、经验药水之类的完整物品
● chip:是如长笛卷轴碎片之类的碎片或者灵魂石的非完整物品
● chip_mask:除了image组件外还加入了Mask组件
●cardIcon:是具体的物品icon
●kind:是如碎片(黄色)或者灵魂石(紫色)的icon
●count:是本物品的具体数量
●Title:为商品名
●Cost:为购买该商品所花费的具体数值
●Image:为Cost种类(如金币、晶钻等等)
●SoldOutImage:为购买完毕后会显示的售罄icon

unity3d游戏开发之商人模块开发心得

标签:unity3d培训   unity培训   unity3d学习   unity3d游戏   

原文地址:http://blog.csdn.net/book_longssl/article/details/43084099

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!