12 第1页 | 共2 页下一页
返回列表 发新帖
查看: 2663|回复: 11
打印 上一主题 下一主题

GUI里面图片的旋转(附带钟表例子)

[复制链接]

1023

主题

3

听众

359

积分

设计实习生

Rank: 2

纳金币
335582
精华
0

最佳新人

跳转到指定楼层
楼主
发表于 2011-11-20 22:15:00 |只看该作者 |倒序浏览




             以前一直不知道在GUI里面画出的图片可以旋转,所以遇到想要旋转图片时,都是把图片贴到一个面片上,旋转面片,很是不方便,最近发现在GUI里是可以旋转图片的,所以写到这里分享给大家。下面贴一个例子,利用图片旋转写的一个钟表的代码,不废话,直接上代码。
            

               var Tu1 : Texture2D;
            

               var Time1 : float = 0;
            

               function FixedUpdate () {
            

                Time1 += Time.deltaTime;
            

               }
            

               function OnGUI () {
            

                GUI.Label(Rect(250,170,161,62),getTime(Time1));
            

               
            

                GUIUtility.RotateAroundPivot (6*Time1, Vector2(103, 200));
            

                GUI.DrawTexture(Rect(100,100,6,100),Tu1);//秒针
            

                GUIUtility.RotateAroundPivot (-6*Time1, Vector2(103, 200));
            

               
            

                GUIUtility.RotateAroundPivot (0.1*Time1, Vector2(103, 200));
            

                GUI.DrawTexture(Rect(100,120,6,80),Tu1);//分针
            

                GUIUtility.RotateAroundPivot (-0.1*Time1, Vector2(103, 200));
            

               
            

                GUIUtility.RotateAroundPivot (0.1/60*Time1, Vector2(103, 200));
            

                GUI.DrawTexture(Rect(100,140,6,60),Tu1);//时针
            

                GUIUtility.RotateAroundPivot (-0.1/60*Time1, Vector2(103, 200));
            

               }
            

                function getTime(time : float) : String{
            

                if(time<0){
            

                return "00:00:00";
            

                }
            

                var lastTime : String = "";
            

                var hour = Mathf.FloorToInt(time/3600%24);
            

                if(hour/10 >=1){
            

                lastTime+="" + hour;
            

                }else{
            

                lastTime +="0" + hour;
            

                }
            

                var minute = Mathf.FloorToInt(time/60%60);
            

                if(minute/10 >=1){
            

                lastTime+=":" + minute;
            

                }else{
            

                lastTime +=":0" + minute;
            

                }
            

                var second = Mathf.FloorToInt(time%60);
            

                if(second/10 >=1){
            

                lastTime+=":" + second;
            

                }else{
            

                lastTime +=":0" + second;
            

                }
            

                return lastTime;
            

               }
            

               简单介绍一下代码
            

               GUIUtility.RotateAroundPivot (6*Time1, Vector2(103, 200))为旋转GUI的代码,第一个参数为旋转的角度,第二个参数为旋转的中心点,在它之下的GUI元素都会执行该旋转,例如图片、文字等。当你只想旋转某一GUI元素而其他元素不旋转事就得给它一个停止旋转的代码,很简单,停止旋转时给它一个反向的角度,ok。
            

               为了便于测试,在钟表左边给出一个数字时间经行对比。getTime(time : float)可用于实现场景中时间的显示,或者倒计时的显示等,需要的直接拿走,哈哈哈~
            


分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2012-1-30 23:27:02 |只看该作者
日出遇爱,日落见情;愿所有的吉星呵护着你!时时吉祥,刻刻平安 愿新的一年里,你位高权重责任轻,钱多事少离家近,每日睡到大天亮,工资领到手抽筋,手下花钱你收礼,别人加班你加薪!
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2012-2-2 23:32:12 |只看该作者
加精、加亮滴铁子,尤其要多丁页丁页
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2012-2-16 23:18:44 |只看该作者
不错啊 经典
回复

使用道具 举报

1274

主题

1

听众

4万

积分

禁止发言

纳金币
43676
精华
4
5#
发表于 2012-2-17 19:55:43 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2012-2-22 23:21:30 |只看该作者
都闪开,介个帖子,偶来顶
回复

使用道具 举报

5969

主题

1

听众

39万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

7#
发表于 2012-3-11 23:26:33 |只看该作者
你们都躲开,我来顶
回复

使用道具 举报

tc    

5089

主题

1

听众

33万

积分

首席设计师

Rank: 8Rank: 8

纳金币
-1
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

8#
发表于 2012-6-10 23:20:04 |只看该作者
很经典,很实用,学习了!
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

9#
发表于 2012-7-30 23:25:15 |只看该作者
已阵亡的 蝶 随 风 舞 说过  偶尔按一下 CTRL A 会发现 世界还有另一面
回复

使用道具 举报

462

主题

1

听众

31万

积分

首席设计师

Rank: 8Rank: 8

纳金币
2
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

10#
发表于 2012-8-15 23:45:56 |只看该作者
很经典,很实用,学习了!
回复

使用道具 举报

12 第1页 | 共2 页下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-7-26 09:29 , Processed in 0.064367 second(s), 29 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部