Unity3D獲取當(dāng)前鍵盤按鍵及Unity3D鼠標(biāo)、鍵盤的基本操作
獲取當(dāng)前鍵盤按鍵,代碼如下:
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)、鍵盤的基本操作
鍵盤:
GetKey 當(dāng)通過(guò)名稱指定的按鍵被用戶按住時(shí)返回true
GetKeyDown 當(dāng)用戶按下指定名稱的按鍵時(shí)的那一幀返回true。
GetKeyUp 在用戶釋放給定名字的按鍵的那一幀返回true。
GetAxis(“Horizontal")和GetAxis(“Verical”) 用方向鍵或WASD鍵來(lái)模擬-1到1的平滑輸入
鍵盤判斷:
If(Input.GetKeyDown(KeyCode.A)){//KeyCode表示包含鍵盤所有鍵
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ù)按鈕名稱返回true當(dāng)對(duì)應(yīng)的虛擬按鈕被按住時(shí)。
GetButtonDown 在給定名稱的虛擬按鈕被按下的那一幀返回true。
GetButtonUp 在用戶釋放指定名稱的虛擬按鈕時(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#統(tǒng)計(jì)字符串里中文漢字個(gè)數(shù)的方法
這篇文章主要介紹了C#統(tǒng)計(jì)字符串里中文漢字個(gè)數(shù)的方法,本文通過(guò)正則實(shí)現(xiàn)統(tǒng)計(jì)出一段字符串里中文字?jǐn)?shù),需要的朋友可以參考下2014-08-08C#實(shí)體類轉(zhuǎn)換的兩種方式小結(jié)
這篇文章主要介紹了C#實(shí)體類轉(zhuǎn)換的兩種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01詳解c#中Array,ArrayList與List<T>的區(qū)別、共性與相互轉(zhuǎn)換
本文詳細(xì)講解了c#中Array,ArrayList與List<T>的區(qū)別、共性與相互轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12詳解C#中多態(tài)性學(xué)習(xí)/虛方法/抽象方法和接口的用法
這篇文章主要為大家詳細(xì)介紹了C#中多態(tài)性學(xué)習(xí)、虛方法、抽象方法和接口的用法的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-03-03C#/VB.NET實(shí)現(xiàn)將XML轉(zhuǎn)為PDF
可擴(kuò)展標(biāo)記語(yǔ)言(XML)文件是一種標(biāo)準(zhǔn)的文本文件,它使用特定的標(biāo)記來(lái)描述文檔的結(jié)構(gòu)以及其他特性。本文將利用C#實(shí)現(xiàn)XML文件轉(zhuǎn)PDF?,需要的可以參考一下2022-03-03C#實(shí)現(xiàn)Ruby的負(fù)數(shù)索引器
這篇文章主要介紹了C#實(shí)現(xiàn)Ruby的負(fù)數(shù)索引器的相關(guān)代碼和使用方法,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2016-07-07