在Unity3d中创建滑动GUI

1.创建一个GUITexture : create-> GUITexure;

   此时可以通过修改component 栏中的选项,改变gui的texture等;

   这样建立的GUITexture从属于整个屏幕平面,作为一个新的物体出现,他的位置不受camera的位置的影响,

   就是说,不管camera移动到哪里,这个GUI始终在你设定的位置;

2. 将GUIslider.js附加到GUITexture上;maincamera作为其参数,应该将camera指定到上面;

GUIslider.js:

[javascript] view plain copy print ?
  1. var mainCamera:Camera;//将你自己的camera赋值到这个camera上面   
  2. var customButton : GUIStyle;// 为新出现的GUI设置Style   
  3. private var newPosition:Vector3;// GUI移动后新的位置   
  4. private var MouseUp: boolean;//显示Mouse是够是Up状态   
  5. private var getPosition : int = 0;//得到鼠标离开GUI的帧数   
  6. private var subGuiShowUp : int = 0;//统计帧数,控制subGUI出现   
  7. function Update () {  
  8.     
  9.   if(MouseUp){  
  10.   if(getPosition < 12)  
  11.   {  
  12.      newPosition.x = mainCamera.ScreenToViewportPoint(Input.mousePosition).x;  
  13.   getPosition +=1;  
  14.   }  
  15.  if(Mathf.Abs(transform.position.x - newPosition.x) > 0.00001){  
  16.   transform.position.x += (newPosition.x  - transform.position.x)*Time.deltaTime*6;  
  17.   }  
  18.  }  
  19.   }  
  20. function OnMouseDrag(){  
  21.  MouseUp = false;  
  22.  subGuiShowUp +=1;  
  23.  getPosition = 13;  
  24.  transform.position.x += (mainCamera.ScreenToViewportPoint(Input.mousePosition).x  - transform.position.x)*Time.deltaTime*10;  
  25. }  
  26. function OnMouseUp(){  
  27.  print(transform.position.x);  
  28.  MouseUp = true;  
  29.  getPosition = 0;  
  30.  //subGuiShowUp = 25;   
  31. }  
  32. function OnGUI(){  
  33.    if(MouseUp){  
  34.  if(subGuiShowUp < 12){  
  35.  GUI.Button (Rect (5,5,100,100), "Hello World", customButton);  
  36.  }  
  37.  }  
  38. }  
  39. function OnMouseDown(){  
  40.    subGuiShowUp = 0;  
  41. }  

你可能感兴趣的:(在Unity3d中创建滑动GUI)