您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 学习培训 > Unity入门 >
    GUI中图片的旋转
    时间:2015-03-02 08:49 来源:Unity之家 作者:unity.jb51.net 浏览:收藏 挑错 推荐 打印



    GUIUtility.RotateAroundPivot (6*Time1, Vector2(103, 200))为旋转GUI的代码,

    第一个参数为旋转的角度,第二个参数为旋转的中心点,在它之下的GUI元素都会执行该旋转,

    例如图片、文字等。当你只想旋转某一GUI元素而其他元素不旋转事就得给它一个停止旋转的代码。


    利用图片旋转写的一个钟表的代码如下:


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


        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));
     
      }   Unity3D教程手册
     
      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;
     
      }



    OK。赶快测试下吧。。。



    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。