Unity 鼠标事件 GUI GUILayerOut Input Application(截屏,getMouseDown,getKeyCode) 射线
来源:互联网 发布:yum install redis 编辑:程序博客网 时间:2024/05/29 13:46
//鼠标没有点击的时候,直接移动到物体上的时候调用
void OnMouseEnter(){
print ("Enter");
}
//鼠标点击物体的时候调用
void OnMouseDown(){
print ("Down");
}
//鼠标滑动物体的时候调用
void OnMouseDrag(){
print ("Drag");
}
//鼠标抬起的时候调用
void OnMouseUp(){
print ("Up");
}
//鼠标离开物体的时候调用
void OnMouseExit(){
print ("Exit");
}
//当玩家点击一个物体准备拖动物体的时候,会先调用Enter然后是Down然后是一直Drag,当鼠标滑动很快但是物体没有跟上的时候,
//会出现鼠标箭头离开了物体,这个时候只要没有松手,Drag是一直在的,但是Exit调用了,Up没有调用,
//但是如果鼠标滑动的不快,鼠标的箭头一直没有离开过物体的话,那么当松手的时候,会先调用Up然后是Exit
1.
void OnGUI(){
if (GUI.Button (new Rect (0, 0, 100, 100), "1")) {
//点下后只有松手了才会调用,只调用一次
print("1");//普通按钮
}
if (GUI.RepeatButton (new Rect (200, 200, 100, 100), "2")) {
//只要没有松手就会一直调用,会调用很多次
print ("2");//激活按钮
}
}
2.
//////////////////////////TextArea固定高宽的文本框,可以输入文字
public string str1 = "";
void OnGUI(){
//这个是固定高宽的文本框
//这个时候文本框中的内容“abc”是不能添加和修改的,因为每当调用到这行语句的时候都会刷新文本框的内容成“abc”
GUI.TextArea(new Rect (100,100,100,100),"abc");
//文本框返回一个string,如下写就可以修改文本框的内容了
//给定了宽度以后输入的文字很长,会自动换行,也可以回车换行,当文本的高度超过文本框的高度后,会自动截取最下面可见的部分
str1 = GUI.TextArea (new Rect (0, 0, 100, 100), str1);
}
//////////////////////////////////////////PasswordField密码框,可以输入密码
//密码框不能换行,比如宽高均是100,但是输入了200长度的string,这个时候高度只是占据了一行
//可是长度只显示了100,长为200的密码是不能全部显示出来的
str1 = GUI.PasswordField(new Rect (100,100,100,100),str1,'#');
//////////////////////////////////////Toggle复选框checkbox
//这个时候man这个选项是一直选择着的,因为传入的是true;
GUI.Toggle(new Rect (100,100,100,100),true,"man");
//////这样就可以点选了
///这个时候选择“man”的时候,“woman”就没有选,选择“woman”的时候,“man”就没有选,
public bool sex;
sex = GUI.Toggle(new Rect(100,100,100,100),sex,"man");
sex = GUI.Toggle(new Rect (100,200,100,100),!sex,"women");
///////////////////////////////////////GUILayout
private string test = "ab";
//会在用户输入的位置创建一个Button,当点击的时候,test会变化可是按钮的宽高不会变化
if (GUI.Button (new Rect (100, 100, 100, 100), test)) {
test+=test;
}
//会产生两个按钮,两个按钮的x是一样的,可是y是上下接着的,自动布局的,而且点击按钮时,test变化,同时按钮的宽高也会适应test的长短变化而变化
if (GUILayout.Button (test)) {
test+=test;
}
if (GUILayout.Button (test)) {
test+=test;
}
//这些按钮会横向排列,(不要忘了还有EndHorizontal)
GUILayout.BeginHorizontal ();
GUILayout.Button ("fdsa");
GUILayout.Button ("fdsa");
GUILayout.Button ("fdsa");
GUILayout.Button ("fdsa");
GUILayout.EndHorizontal ();
//这些按钮会纵向排列,(不要忘了还有EndVertical)
GUILayout.BeginVertical ();
GUILayout.Button ("fdsa");
GUILayout.Button ("fdsa");
GUILayout.Button ("fdsa");
GUILayout.Button ("fdsa");
GUILayout.EndVertical();
/////////////////////////////////////////////////////////Input
Application.CaptureScreenshot
if (Input.GetKeyDown (KeyCode.W)) {
Application.CaptureScreenshot("C:\\Users\\Administrator\\Desktop\\1.png");
//Application.CaptureScreenshot(@"C:\Users\Administrator\Desktop\1.png");//在字符串前面加上“@”就可以只用一个“\”
}
GetMouseButtonDown
if (Input.GetMouseButtonDown (0)) {
print ("fdsaf");
}
////////////////////////////////////射线
if (Input.GetMouseButtonDown (0)) {
//从摄像机到鼠标点击的位置发射一条射线
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitInfo;//射线的碰撞信息
if(Physics.Raycast(ray,out hitInfo)){
Destroy(hitInfo.collider.gameObject);
}
}
- Unity 鼠标事件 GUI GUILayerOut Input Application(截屏,getMouseDown,getKeyCode) 射线
- unity GUI中的鼠标事件
- Unity Input 鼠标模拟
- unity的input鼠标
- Unity 射线 (之鼠标点击的坐标)
- 【Unity】屏幕射线和鼠标指针
- Unity中从鼠标位置发射射线
- Opencv 鼠标事件GUI
- java GUI 鼠标事件
- 键盘事件 getKeyCode() getKeyChar() getKeyText
- Unity鼠标事件
- unity 中的鼠标事件
- unity 鼠标悬停事件
- Unity鼠标双击事件
- 25-GUI-05-GUI(鼠标事件)
- GUI事件监听鼠标监听器
- java GUI(鼠标键盘事件)
- 【Unity学习笔记】——射线应用,光点随鼠标移动
- 每日一Vim(5)—— c命令
- JUnit的jar包和hamcrest的jar包关系
- Makefile的在工程中的一般性应用
- java中equals与==
- 使用QtSingleApplication,实现应用只启动一个实例
- Unity 鼠标事件 GUI GUILayerOut Input Application(截屏,getMouseDown,getKeyCode) 射线
- ubuntu下中文输入法安装
- dell工作电脑配置
- 黑马程序员---IO流1(其他对象、FileWriter、FileReader)
- Sass入门-简介
- map小结[2015-11-03]
- PS学习笔记之裁切的透明
- 解决 ckfinder 不能上传图片,附件问题
- 类和对象