屏幕分辨率与GUIStyle字体大小

来源:互联网 发布:中文域名不流行 编辑:程序博客网 时间:2024/06/05 18:33

一般情况下,GUIStyle字体大小是在创建时设置好的,如:fontStyle.fontSize = 20;       //字体大小 

之后便改变不了大小。这是为游戏计分所做的,当然有其他办法,就像吴亚峰《unity游戏开发技术详解与典型案例》的例子一样,

他是用位数之间的算法来计算分数的,通过直接贴图的形式,但我感觉这种方式比较麻烦,所以采取不同的措施。我在不同的屏幕

分辨率里设置不同的字体大小,如:①fontStyle.fontSize = 20;       //字体大小  ②fontStyle01.fontSize = 30;       //字体大小 

然后根据屏幕分辨率的改变进行判断,bg是背景图片的大小,Screen是设备分辨率,通过二者之间的比较可以得出不同的情况,然后

在重新绘制GUIStyle字体,位置保持不变,大小根据分辨率大小来选择和调整。只有重新绘制,才可以变,方法是:GUI.Label(new Rect(Screen.width/2,Screen.height*0.12f,t_width,t_heigh)," "+playerScore,fontStyle01);不然没有效果。

 //获取分数      a=bg.width/Screen.width;       if(a==2){          GUI.Label(new Rect(Screen.width/2,Screen.height*0.12f,t_width,t_heigh)," "+playerScore,fontStyle);           Debug.Log("258");       } else if(a==1){        GUI.Label(new Rect(Screen.width/2,Screen.height*0.12f,t_width,t_heigh)," "+playerScore,fontStyle01);       Debug.Log("000");              }    

总结:我尝试过很多方法,由于根据设备的变化,进行调整,在update里选择,但是没用,因为GUI已经选择默认进行绘制了,所以这种情况下,必须在判断条件下,进行重新绘制方法,才可以实现效果。

原创粉丝点击