常用的Unity输入方法

以下是一些常用的Unity输入方法的总结。

1. Input.GetKeyDown(KeyCode key)

返回值:bool。如果用户在上一帧没有按下指定的键,但在当前帧按下了,则返回true;否则返回false。

例子:

if (Input.GetKeyDown(KeyCode.Space))  
{  
    Debug.Log("空格键被按下!");  
}

2. Input.GetKey(KeyCode key)

返回值:bool。如果用户在当前帧按下了指定的键,则返回true;否则返回false。
例子:

if (Input.GetKey(KeyCode.W))  
{  
    // 向前移动  
}

3. Input.GetKeyUp(KeyCode key)

返回值:bool。如果用户在上一帧按下了指定的键,但在当前帧释放了,则返回true;否则返回false。

例子:

if (Input.GetKeyUp(KeyCode.Escape))  
{  
    // 退出游戏  
}

4. Input.GetAxis("Horizontal") 和 Input.GetAxis("Vertical")

返回值:float。对于“Horizontal”轴,正值表示向右,负值表示向左;对于“Vertical”轴,正值表示向上,负值表示向下。如果没有输入,则返回0。滚轮上滑为正,下滑为负;且滚轮的每个小格卡顿,其数值信息表示为0.1,快速连续滚动时其数值会直接出现对应的数值,不会一格一格出现。

可以使用Input.GetAxis("Mouse X")获取鼠标在水平方向上的移动量,使用Input.GetAxis("Mouse Y")获取鼠标在垂直方向上的移动量。

例子:

float moveX = Input.GetAxis("Horizontal") * Time.deltaTime;  
float moveY = Input.GetAxis("Vertical") * Time.deltaTime;  
float scroll = Input.GetAxis("Mouse ScrollWheel");  //滚轮
float mouseX = Input.GetAxis("Mouse X");
float mouseY = Input.GetAxis("Mouse Y");

5. Input.GetMouseButton(int button)

返回值:bool。如果当前帧用户按下了指定的鼠标按钮(0代表左键,1代表右键,2代表中键),则返回true;否则返回false。

例子:

if (Input.GetMouseButton(0))  
{  
    // 鼠标左键被按下  
}

6. Input.GetMouseButtonDown(int button)

返回值:bool。如果用户在上一帧没有按下指定的鼠标按钮,但在当前帧按下了,则返回true;否则返回false。

例子:

if (Input.GetMouseButtonDown(0))  
{  
    // 鼠标左键被按下  
}

7. Input.GetMouseButtonUp(int button)

返回值:bool。如果用户在上一帧按下了指定的鼠标按钮,但在当前帧释放了,则返回true;否则返回false。

例子:

if (Input.GetMouseButtonUp(0))  
{  
    // 鼠标左键被释放  
}

8. Input.mousePosition

返回值:Vector3。表示鼠标在屏幕上的位置(以像素为单位),左下角为(0,0),右上角为(Screen.width, Screen.height)。

例子:

Vector3 mousePos = Input.mousePosition;  
// 可以将鼠标位置转换为世界空间中的位置  
RaycastHit hit;  
if (Physics.Raycast(Camera.main.ScreenPointToRay(mousePos), out hit))  
{  
    // 射线击中了物体  
}
posted @ 2024-09-12 22:59  zlllIII  阅读(192)  评论(0)    收藏  举报