unity3d ui游戏在安卓真机上图片按钮等UI元素显示很小怎么回事

扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
关注:1057
当前位置: &
__________________________________________________________________________________
开发者干货区版块规则:
  1、文章必须是图文形式。(至少2幅图)
& && &2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
& && &3、本版块只支持在游戏蛮牛原创首发,不支持转载。
& && &4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
& && &5、......
__________________________________________________________________________________
查看: 1049|回复: 4
Unity3D RenderTexture实现3D立绘
9排名<font color="#FF昨日变化5主题帖子积分
在线时间80 小时
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
aaa.png (273.86 KB, 下载次数: 3)
17:11 上传
NGUI有个Demo,实现了这个功能,UI界面显示一个3D模型,但是这种方法并不具备适用性。
现在我们的项目中还没用到这种超前的3D界面设计,我们常用的UI都是由大堆的UI通过层级堆叠出来的。
那按照我们现在UI的制作方法怎么实现这种UI界面显示3D模型,3D模型还可以自由徐旋转运动的功能呢。
RenderTexture就是一种很好用的方法。
1.首先我们需要一个UITexture在UI界面中占领一个位置和层级。
aaa.png (216.3 KB, 下载次数: 4)
17:56 上传
现在我们看到装备栏中,一块绿油油的马赛克图片已经占领了我们给要渲染的3D模型的位置。
2.创建一个RenderTexture用来接收摄像机拍摄的画面,保存在这个RenderTexture上。
ccc.png (22.1 KB, 下载次数: 3)
17:36 上传
3.要显示的内容图片已经创建完成了,绑定到已经做好的UITexture上。
dddd.png (53.35 KB, 下载次数: 3)
17:41 上传
4.现在最重要的就要进入关键步骤了,如何把3D模型渲染到这张RenderTexure上呢?
我们只需要在场景稍微偏偏的一个地方创建一个摄像机,删除它多余的组件,只留Camera组件。
将创建好的RenderTexture绑定它的属性上,这样就可以把摄像机看到的内容全部渲染到RenderTexure这张“图片”上了
eeeee.png (48.85 KB, 下载次数: 3)
17:48 上传
5.现在我们在摄像机前面看看效果(右下角是摄像机看到的画面)
fff.png (37.96 KB, 下载次数: 3)
17:51 上传
下面是保存在RenderTexure上的画面
fff2.png (51.1 KB, 下载次数: 3)
17:53 上传
再下面是UI界面显示的画面
ffff3.png (67.52 KB, 下载次数: 3)
17:54 上传
一毛一样,有木有。
运行起来,模型在动,UI上的人也在动,有木有。
6.为了避免穿帮,我们添加一个Layer专门给这个摄像机使用
另外按照功能考虑,这个摄像机并不需要渲染很远距离的东西,把Clipping planes的far属性调到一个合适的值就可以。
ggg.png (41.56 KB, 下载次数: 3)
18:00 上传
现在3D全身模型没了,那如果3D头像也想用实时渲染的模型呢。图像框还是圆形的怎么办呢?
下面我来做个尝试。
1.先确定框体大小,做好位置和层级的占位
zzz.png (117.88 KB, 下载次数: 3)
18:11 上传
2.再做一张RenderTexure,人物离近一点不就行了。那么问题来了,这还是方形的,圆形头像怎么办?
xxx.png (131.11 KB, 下载次数: 3)
18:12 上传
3.首先我们需要一个中间一个圆形镂空的模型
yyy.png (1.7 KB, 下载次数: 3)
18:15 上传
4.延后类,模型瞄准位置,摆上。
yyy2.png (83.87 KB, 下载次数: 3)
18:17 上传
是不是很完美。
5.谁说不完美?!还差一步!
创建个shader,代码在下面:
[C#] 纯文本查看 复制代码Shader &DuanShader/maskshader&
SubShader {
Tags {&Queue& = &Geometry-10& }
Lighting Off
ZTest LEqual
ColorMask 0
镂空模型选用这个shader,在看内容。同样的佩服,通用的味道,效果就是这么完美。
yyy3.png (66.05 KB, 下载次数: 2)
18:22 上传
rendertexture 保存; 镂空;unity创建上传头像功能;3d模型unity3d gui 渲染到摄像机;rendertexture 透明;rendertexture在安卓上不能显示;unity 3d模型在ui中显示;将多个rendertexture放到一个摄像机上;unity rendertexture 有残影;u3unity装备栏
每日推荐:
9排名<font color="#FF昨日变化5主题帖子积分
在线时间80 小时
asd2.gif (1.75 MB, 下载次数: 3)
18:31 上传
每日推荐:
4363/500排名<font color="#FF昨日变化6主题帖子积分
四处流浪, 积分 363, 距离下一级还需 137 积分
四处流浪, 积分 363, 距离下一级还需 137 积分
在线时间90 小时
这个是有问题的。我们在项目中很早就使用这种办法,实际是很挫的。当有特效存在时候。你可以试试。
每日推荐:
9排名<font color="#FF昨日变化5主题帖子积分
在线时间80 小时
这个是有问题的。我们在项目中很早就使用这种办法,实际是很挫的。当有特效存在时候。你可以试试。 ...
渲染RenderTexure的摄像机背景色调成全透明的确实会不显示粒子特效。
摄像机渲染和RenderTexture是没问题的,问题处在UITexture身上。
这个大师提供了一个解决办法(http://blog.csdn.net/kakashi8841/article/details/)
每日推荐:
3183/300排名<font color="#FF昨日变化2主题帖子积分
偶尔光临, 积分 183, 距离下一级还需 117 积分
偶尔光临, 积分 183, 距离下一级还需 117 积分
在线时间48 小时
666,不过这要是显示的多了不卡么?
每日推荐:
游戏蛮牛给予质量较高、影响力较大的unity相关技术开发者的荣誉称号摆脱臃肿--Unity3D安卓包减肥秘笈 (一) - Unity3d技术 - 泰课在线 - 国内最大的Unity在线学习平台|Unity3d培训|Unity教程|Unity教程 Unreal 虚幻 AR|移动开发|美术CG|UI平面设计|前端开发 - Powered By EduSoho
摆脱臃肿--Unity3D安卓包减肥秘笈 (一)
  减包瘦身是个精细活。本文整理了0907版本操作过程,以备日后参考。
  经过一番折腾,各位攻城狮的努力,美术设计师的支持,策划爷的理解,UI资源(图集、字体、单局外模型贴图)从45.4MB减少到24.5MB。如下表所示。
 &下文看图说话。实操中针对同一个资源,可组合应用多个压缩选项。文中所指【图集Atlas】是多个小图片的合集,【Texture】是单张图片,大小指的都是打包前的资源大小。
  1、删除无效的、废弃的资源
  理由是显然的,无效的、废弃的资源就应该移除项目工程之外。确认是否废弃资源可以通过以下几个方面考量:
  Texture:(1)在prefab中搜索texture.png.meta文件的guid,确认是否被引用;(2)在C#代码中搜索文件名,确认是否被动态指定。
  图集Atlas:(1)在prefab中搜索atlas.prefab.meta文件的guid,确认是否被引用。
  图集Atlas的单个图片:(1)在prefab中搜索图片文件名,确认是否被直接引用;(2)在C#代码中搜索图片完整或局部文件名,确认是否被动态指定。
  2、取消图集Atlas的正方形限制
  工程项目中提供了图集制作工具(HDAtlasMaker),默认是生成正方形图集Atlas。然而此举很浪费,因为若限制图集为正方形,很多时候图集大部分区域是空白。事实上应取消正方形限制。
  例子(无损):宽*高:(16M) =& (8M)
  适用场合:去掉正方形限制后可缩减一个尺寸的Atlas。
  3、使用TexturePackerGUI打包,勾选Trim属性去除透明边界
  例子(无损):宽*高:512*1024(2M) =& 512*512(1M)
  适用场合:去掉透明边界后可缩减一个尺寸的Atlas。
  使用TexturePackerGUI工具制作图集时,可以预览图集效果。勾选Trim属性的实质是,图集打包时设置Padding属性代替透明边界。
  4、调整Texture初始默认导入设置
  Texture的默认导入设置包含Mip Maps。然而Mip Maps是为了物体在视野远近不同而生成不同分辨率的纹理。而UI贴图不需要考虑远近,无需生成小纹理。所以应将Texture导入设置改用Advanced,并取消Generate Mip Maps。
  无损:1.3M =& 1.0M
  适用场合:默认导入设置为Texture的全部UI图片资源。
  5、调整Texture导入设置(Advanced:无Alpha透明通道)
  (1) 无损:RGBA 32 Bits(2.3MB) =& RGB 24 Bits(1.7MB)
  适用场合:无Alpha透明通道的单个图片,如登陆背景、通用背景。
  (2)有损:RGB 24 Bits(1.7MB) =& RGB ETC 4Bits(256KB)
  此项压缩有损画质,然而压缩效果却很明显。注意ETC需设置资源宽高为2幂次方。实际尺寸非2幂次方时,将以伸缩处理。
  适用场合:无Alpha透明通道,且画质要求较低的单个图片,如:结算背景、领奖背景、通用背景、Loading图、3D模型贴图等。
  (3) 有损:RGB ETC 4Bits & Max KB) =& RGB ETC 4Bits & Max 512(64KB)
  在(2)的基础上,此处设置宽高最大512,当实际尺寸超过512时将拉伸到实际尺寸,会进一步模糊画质。此处512也可根据实际情况选用256、128、64、32等。
  适用场合:同(2),无Alpha透明通道,且画质要求更低的单个图片。
  6、调整Texture导入设置(Advanced:有Alpha透明通道)
  (1)&&有损:RGBA 32 Bits(1.1MB) =& RGBA 16 Bits(0.5MB)
  适用场合:有Alpha透明通道,且画质要求较低的单个图片。
  (2) 有损:RGBA 16 Bits & Max MB) =& RGBA 16 Bits & Max 512(360KB)
  适用场合:同(2),有Alpha透明通道,且画质要求更低的单个图片。画质在(2)的基础上进一步模糊。
  7、Texture从Atlas分离出来
  例子(几乎无损):宽高:512*512(1M) =& 256*512(0.5M)+ RGBA 16Bits(50KB)
  适用场合:分离出尺寸最大的单个图片后,剩下小图片生成的图集Atlas能缩小一个尺寸。
  8、去掉边缘发光
  例子(几乎无损):宽高:640*326(0.8M) =& 234*126(115KB)
  适用场合:边缘发光去掉后对画质不影响或影响甚微的单个图片。
  9、去掉边缘装饰
  例子(几乎无损):宽高:585*141(322KB) =& 510*79(157KB)
  适用场合:边缘装饰去掉后对画质不影响或影响甚微的单个图片。
  10、整合图集Atlas
  例子(几乎无损):两个256*512(0.5M*2) =& 一个256*512(0.5M)+若干独立小图
  适用场合:图集小图片有交集,所属模块类似,且都有剩余空间,放一起刚刚好。
  11、重新裁切透明边框尺寸(Atlas)
  例子(几乎无损):512*512(0.5M) =& 512*256(256KB)
  适用场合: NGUI Font。由于UI Font不能直接Trim,需处理原始资源,切掉透明边框。
  12、重新裁切透明边框尺寸(Texture)
  例子(无损):640*499(0.6M) =& 640*450(0.5M)
  适用场景:有透明边框的Texture。由于Texture不能直接Trim,需处理原始资源,切掉透明边框。
  13、缩小资源原始尺寸(Atlas)
  例子(有损):宽*高:(8M) =& (4M)
  适用场景:图集Atlas空白太多,且图集元素能接受小范围的画质模糊。
  将小图片缩小80%,重新制作图集,实际应用UISprite时再通过代码恢复125%回到原始尺寸。
  14、缩小资源原始尺寸(Texture)
  例子(有损):宽*高:577*M)vs 480*852(1.2M)vs 288*512(432KB)
  适用场景:登陆界面背景原始尺寸640*1136。
  若直接导入原尺寸,则资源较大(2.1M)。
  若按Max 1024导入也不小(1.7M)。
  若按Max 512导入则只需432KB,然而此图为重要门面背景,画质不能忍。又因为导入设置不支持512~1024的中间尺寸,唯有手动缩小原始尺寸到合适尺寸和画质,比如此处中间版本【原图66.6% = 480*852(1.2M)】。
  15、调整策划需求
  例子(无损):640*630(1.2M) =& 32*32(3KB)
  适用场景:特定需求,特定应用场景。
  项目中的具体需求是,特定时间区间内显示运营Loading图,其他时间显示默认Loading图。这里可以让运营策划调整该特定时间区间,使之包含整个测试期间,那么默认Loading图就无需显示,其导入尺寸可缩小到最小。此处不直接删除默认Loading图是为了避免逻辑出错,且方便日后恢复。
  16、统一背景资源
  例子:背景大图。
  背景大图等资源应尽量复用。以下曾经出现过的几个背景图差异微小,经商讨后,最终统一用第三个,删除另外两个。
  17、缩减关键图集Atlas尺寸
  例子:Common图集Atlas把ABCS品质独立出来,剩下打包更小尺寸的Atlas。关键图集出现概率很高,此处缩减操作是为内存考虑。
  18、分析构建日志
  例子:分析C:\Users\[你的用户名]\AppData\Local\\Editor\Editor.log当中的构建日志部分,查看打包资源列表,发现:
  (1)NGUI样例图集被打包进去了。
  搜索发现并无被直接引用,而是间接引用。为防止出错不直接删除,而是将Max Size调整到很小。
  (2)发现了重复图集。
  (3)宠物图集占用5.3MB,而不是4.0MB,经检查发现导入设置有误,生成了Mip Maps。类似的大图集有好几个,逐一检查处理。
  (4)新手引导和头像集合这两个图集很大,进一步将重点优化。
后发表看法
还有-5条回复,
你还没有登录,请先或!
Unity VIP会员①群
Unity VIP会员②群
HTML5公开课①群(hot!)
HTML5公开课②群(new!)
Cocos2dx公开课①群(hot!)
Unity公开课①群(2000人群)
Unity公开课②群(2000人群)
Unity公开课③群(2000人群)
Unity公开课④群(2000人群)
泰斗社区求职招聘①群
工作时间: 9:00 - 17:00
北京客服: 010 -
广州客服: 020 -unity3d 怎么用代码隐藏按钮,我用的自带的ui系统_百度知道
unity3d 怎么用代码隐藏按钮,我用的自带的ui系统
提问者采纳
调用gameobject.setActive(false);函数。
提问者评价
来自团队:
其他类似问题
为您推荐:
unity3d的相关知识
其他1条回答
.setActive(false);
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 unity5 ui按钮 click 的文章

 

随机推荐