找回密码
 立即注册
楼主: 暴躁小强

[GUI] Unity3D中创建滑动GUI

[复制链接]
发表于 2012-11-13 11:07 | 显示全部楼层 |阅读模式

功能实现:

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

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

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

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

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

GUIslider.js:
*/[code=javascript]
var mainCamera:Camera;//将你自己的camera赋值到这个camera上面
var customButton : GUIStyle;// 为新出现的GUI设置Style
private var newPosition:Vector3;// GUI移动后新的位置
private var MouseUp: boolean;//显示Mouse是够是Up状态
private var getPosition : int = 0;//得到鼠标离开GUI的帧数
private var subGuiShowUp : int = 0;//统计帧数,控制subGUI出现
function Update () {
  
  if(MouseUp){
  if(getPosition < 12)
  {
     newPosition.x = mainCamera.ScreenToViewportPoint(Input.mousePosition).x;
  getPosition +=1;
  }
if(Mathf.Abs(transform.position.x - newPosition.x) > 0.00001){
  transform.position.x += (newPosition.x  - transform.position.x)*Time.deltaTime*6;
  }
}
  }
function OnMouseDrag(){
MouseUp = false;
subGuiShowUp +=1;
getPosition = 13;
transform.position.x += (mainCamera.ScreenToViewportPoint(Input.mousePosition).x  - transform.position.x)*Time.deltaTime*10;
}
function OnMouseUp(){
print(transform.position.x);
MouseUp = true;
getPosition = 0;
//subGuiShowUp = 25;
}
function OnGUI(){
   if(MouseUp){
if(subGuiShowUp < 12){
GUI.Button (Rect (5,5,100,100), "Hello World", customButton);
}
}
}
function OnMouseDown(){
   subGuiShowUp = 0;
}[/code]
发表于 2013-3-21 16:26 | 显示全部楼层
正在在滑动模块,谢谢楼主分享
发表于 2014-5-27 11:24 | 显示全部楼层
谢谢分享   
发表于 2017-2-27 17:53 | 显示全部楼层
很不错
发表于 2017-2-27 17:46 | 显示全部楼层
顶顶多好
发表于 2017-2-27 17:30 | 显示全部楼层
难得一见的好帖
发表于 2017-2-27 17:29 | 显示全部楼层
很好哦
发表于 2017-2-27 18:12 | 显示全部楼层
LZ真是人才
发表于 2017-4-21 22:24 | 显示全部楼层
楼主是超人
发表于 2017-4-21 22:19 | 显示全部楼层
好帖就是要顶
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-2 13:09 , Processed in 2.999871 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表