Unity3D獲取當(dāng)前鍵盤(pán)按鍵及Unity3D鼠標(biāo)、鍵盤(pán)的基本操作
獲取當(dāng)前鍵盤(pán)按鍵,代碼如下:
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());
}
}
}
}
下面給大家介紹Unity3D鼠標(biāo)、鍵盤(pán)的基本操作
鍵盤(pán):
GetKey 當(dāng)通過(guò)名稱(chēng)指定的按鍵被用戶按住時(shí)返回true
GetKeyDown 當(dāng)用戶按下指定名稱(chēng)的按鍵時(shí)的那一幀返回true。
GetKeyUp 在用戶釋放給定名字的按鍵的那一幀返回true。
GetAxis(“Horizontal")和GetAxis(“Verical”) 用方向鍵或WASD鍵來(lái)模擬-1到1的平滑輸入
鍵盤(pán)判斷:
If(Input.GetKeyDown(KeyCode.A)){//KeyCode表示包含鍵盤(pán)所有鍵
print(“按下A鍵”); } If(Input.GetKeyUp(KeyCode.D)){//當(dāng)按D鍵松開(kāi)時(shí)
print(“松開(kāi)D鍵”); } If(Input.GetAxis(“Horizontal")){//當(dāng)按下水平鍵時(shí)
print(“按下水平鍵”); } If(Input.GetKeyUp("Verical“)){當(dāng)按下垂直鍵時(shí)
print(“按下垂直鍵”); }
鼠標(biāo):
GetButton 根據(jù)按鈕名稱(chēng)返回true當(dāng)對(duì)應(yīng)的虛擬按鈕被按住時(shí)。
GetButtonDown 在給定名稱(chēng)的虛擬按鈕被按下的那一幀返回true。
GetButtonUp 在用戶釋放指定名稱(chēng)的虛擬按鈕時(shí)返回true。
鼠標(biāo)判斷:
if(Input.GetButton("Fire1")){//Fire1表示按下鼠標(biāo)左鍵
print(“按下鼠標(biāo)左鍵”); } if (Input.GetMouseButton(0)) {//0表示鼠標(biāo)左鍵
Debug.Log("按下鼠標(biāo)左鍵"); } if (Input.GetMouseButton(1)) {//1表示鼠標(biāo)右鍵
Debug.Log("按下鼠標(biāo)右鍵"); } if (Input.GetMouseButton(2)) {//2表示鼠標(biāo)中鍵
Debug.Log("按下鼠標(biāo)中鍵"); }
給物體施加普通力:
1、先給物體添加剛體
2、transform.rigidbody.AddForce(0,0,1000); 一個(gè)簡(jiǎn)單例子讓小球撞破墻:

代碼如下:
using UnityEngine;
using System.Collections;
public class Cube : MonoBehaviour { // Use this for initialization
void Start () { } // Update is called once per frame void Update () {
if(Input.GetKey(KeyCode.W)){//當(dāng)鼠標(biāo)按下W鍵時(shí),小球向前移動(dòng)
transform.Translate(Vector3.forward);
}
if(Input.GetKey(KeyCode.S)){當(dāng)鼠標(biāo)按下S鍵時(shí),小球向后移動(dòng)
transform.Translate(Vector3.back);
天貓雙十一活動(dòng)
} if(Input.GetKey(KeyCode.A)){當(dāng)鼠標(biāo)按下A鍵時(shí),小球向左移動(dòng)
transform.Translate(Vector3.left);
}
if(Input.GetKey(KeyCode.D)){當(dāng)鼠標(biāo)按下D鍵時(shí),小球向右移動(dòng)
transform.Translate(Vector3.right);
} if(Input.GetButton("Fire1")){//當(dāng)點(diǎn)擊鼠標(biāo)左鍵時(shí),小球撞塌墻
transform.rigidbody.AddForce(0,0,200);//物體向前移動(dòng)的力為200
}
}
}
相關(guān)文章
C#實(shí)現(xiàn)基于IE內(nèi)核的簡(jiǎn)單瀏覽器完整實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)基于IE內(nèi)核的簡(jiǎn)單瀏覽器,較為詳細(xì)的分析了C#實(shí)現(xiàn)瀏覽器的原理與主要功能實(shí)現(xiàn)方法,并附帶完整實(shí)例供大家下載,需要的朋友可以參考下2015-07-07
關(guān)于C#10 新特性 Lambda 優(yōu)化
這篇文章主要介紹了C# 10 新特性 Lambda 優(yōu)化,C# 10 對(duì)于 Lambda 做了很多的優(yōu)化,我們可以在 C# 中更加方便地使用委托和 Lambda 了,下面就來(lái)看一些示例,需要的朋友也可以參考一下2021-11-11
C#集合根據(jù)對(duì)象的某個(gè)屬性進(jìn)行去重的代碼示例
當(dāng)根據(jù)對(duì)象的Name屬性進(jìn)行去重時(shí),你可以使用以下三種方法:使用Distinct方法和自定義比較器、使用LINQ的GroupBy方法,以及使用HashSet,下面給大家介紹C#集合根據(jù)對(duì)象的某個(gè)屬性進(jìn)行去重的代碼示例,感興趣的朋友一起看看吧2024-03-03
WPF 自定義雷達(dá)圖開(kāi)發(fā)實(shí)例教程
這篇文章主要介紹了WPF 自定義雷達(dá)圖開(kāi)發(fā)實(shí)例教程,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
C#12中的Primary?Constructors主構(gòu)造函數(shù)詳解
主構(gòu)造函數(shù)把參數(shù)添加到class與record的類(lèi)聲明中就是主構(gòu)造函數(shù),這篇文章主要介紹了C#12中的Primary?Constructors 主構(gòu)造函數(shù),需要的朋友可以參考下2023-11-11
基于Kubernetes實(shí)現(xiàn)前后端應(yīng)用的金絲雀發(fā)布(兩種方案)
這篇文章主要介紹了基于Kubernetes實(shí)現(xiàn)前后端應(yīng)用的金絲雀發(fā)布,文中給大家提到了兩種常用方案,通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12

