您的位置:首页 > 产品设计 > UI/UE

教你如何做GUI中图片的旋转

2013-06-04 11:04 531 查看
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;

  }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: