如何获取untiy鼠标按下的时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取untiy鼠标按下的时间相关的知识,希望对你有一定的参考价值。

参考技术A 、为maincamera添加guilayer(一般不用自己添加,在添加maincamera时会自动创建对应的guilayer)
2、在脚本代码中读取对应的guilayer
3、检测鼠标或触摸屏单击事件,使用HitTest检测是否被点击
4、根据名称执行对应的函数
private GUILayer test.mousePosition).name);/获取主摄像机对应的guilayer void Update() if (Input;定义 void Start() test = Camera;/点击检测到guitexture Debug.Log(test.main.GetComponentGUILayer;();/.mousePosition) != null).HitTest(Input;///鼠标或触摸事件 if (test.HitTest(Input.touchCount ; 0 Input.GetMouseButtonDown(0))
参考技术B 获取当前键盘按键,代码如下:
?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

using UnityEngine;
using System.Collections;
public class GetCurrentKey : MonoBehaviour
KeyCode currentKey;
void Start ()

currentKey = KeyCode.Space;

void OnGUI()

if (Input.anyKeyDown)

Event e = Event.current;
if (e.isKey)

currentKey = e.keyCode;
Debug.Log("Current Key is : " + currentKey.ToString());



如何获取在 JavaFX 2 中按下的 Enter 键?

【中文标题】如何获取在 JavaFX 2 中按下的 Enter 键?【英文标题】:How do I pick up the Enter Key being pressed in JavaFX2? 【发布时间】:2012-12-02 13:41:02 【问题描述】:

我有一个用于输入搜索词的 TextField 和一个用于“Go”的按钮。但是在 JavaFX2 中,我该如何让它在 TextField 中按 Enter 键来执行操作?

谢谢:)

【问题讨论】:

Javadoc 是解决此类问题的好来源:docs.oracle.com/javafx/2/api/javafx/scene/control/… Aaah Stack Overflow,俗话说:“授人以鱼,食一日,授人以渔,食一生。”但一个常见的 SO 回应更像是:“我说,好先生,有一个有书的地方,看看钓鱼,努力学习和练习,2 个月后你可以吃饭了。”好心,但没用。 【参考方案1】:

我假设您希望仅在 TextField 具有焦点时用户按 Enter 键时发生这种情况。您需要使用 KeyEvent 包中的 KeyEvent 并执行以下操作:

field.setOnKeyPressed(new EventHandler<KeyEvent>() 
    @Override
    public void handle(KeyEvent ke) 
        if (ke.getCode().equals(KeyCode.ENTER)) 
            doSomething();
        
    
);

使用 lambda:

field.setOnKeyPressed( event -> 
  if( event.getCode() == KeyCode.ENTER ) 
    doSomething();
  
 );

【讨论】:

【参考方案2】:

在某些键盘上,您必须对“\n”和“\r”字符进行额外测试。

if(event.getCode().equals(KeyCode.ENTER) || event.getCharacter().getBytes()[0] == '\n' || event.getCharacter().getBytes()[0] == '\r') 
        // your action
    

【讨论】:

【参考方案3】:

只需使用 “lambda 表达式”:

TextField textField = new TextField();
textField.setOnAction(e -> 
    // add your code to be run here
    System.out.println("textFile");
    );

【讨论】:

【参考方案4】:

这行得通:

@FXML public TextField txt;

@FXML
public void textAction(KeyEvent e)

    if(e.getCode().equals(KeyCode.ENTER))
        System.out.println(txt.getText());

如果由于某种原因 .getCode() 不起作用, 确保导入库:

import javafx.scene.input.KeyEvent;

不是

import java.awt.event.KeyEvent;

我被这件事吸引住了,这很烦人。我只是为所有在同一条船上的人传递这个。

【讨论】:

【参考方案5】:

您可以使用 TextField 的 onAction 属性并将其绑定到控制器中的方法。

@FXML
public void onEnter(ActionEvent ae)
   System.out.println("test") ;

在您的 FXML 文件中:

<TextField fx:id="textfield" layoutX="29.0" layoutY="298.0" onAction="#onEnter" prefWidth="121.0" />

【讨论】:

是的,onAction 方法似乎是要走的路:docs.oracle.com/javafx/2/api/javafx/scene/control/… -> +1 但是当从 FXML “绑定”时,你需要用 @FXML 注释 onEnter() 方法,它有采用 ActionEvent 参数,AFAIK。 请注意,我必须在 onEnter 上添加 (ActionEvent actionEvent) 作为参数才能工作。【参考方案6】:

您可以尝试以下方法:

@FXML
public void buttonPressed(KeyEvent e)

    if(e.getCode().toString().equals("ENTER"))
    
        //do something
    

【讨论】:

更好用:ke.getCode() == KeyCode.ENTER,因为它是一个枚举 单靠这个不行,这个的FXML是什么?

以上是关于如何获取untiy鼠标按下的时间的主要内容,如果未能解决你的问题,请参考以下文章

如何在按钮按下事件之外在 Silverlight 中获取鼠标按钮状态?

如何从与我按下的按钮位于同一行的单元格中获取值

如何检测按下的鼠标何时进入不同框架中的小部件

android 如何获取同一WiFi下的所有连接终端

如何获取 QTableWidget 光标下的行

jquery如何通过拖动边框改变该div的大小