Unity3D Input按鍵系統(tǒng)

原創(chuàng)文章如需轉(zhuǎn)載請(qǐng)注明:轉(zhuǎn)載自 脫莫柔Unity3D學(xué)習(xí)之旅

默認(rèn)輸入軸:

Horizontal 和 Vertical被映射到w, a, s, d鍵和方向鍵
Fire1, Fire2, Fire3被分別映射到Ctrl只嚣,Option(Alt)和Command鍵
Mouse X 和 Mouse Y被映射到鼠標(biāo)移動(dòng)增量
Window Shake X 和 Window Shake Y 被映射到窗口的移動(dòng)

添加新的輸入軸

添加新的虛擬軸,選擇菜單Edit->Project Settings->Input :

名稱(Name):名稱用于從腳本使用這個(gè)軸
描述名稱(Descriptive Name):正值名稱顯示于配置對(duì)話框的輸入標(biāo)簽艺沼,用于獨(dú)立版册舞。
描述負(fù)名稱(Descriptive Negative Name):負(fù)值名稱顯示于配置對(duì)話框的輸入標(biāo)簽,用于獨(dú)立版障般。
負(fù)按鈕(Negative Button):該按鈕用于在負(fù)方向移動(dòng)軸 (如:左)
正按鈕(Positive Button):該按鈕用于在正方向移動(dòng)軸 (如:右)
備選負(fù)按鈕(Alt Negative Button):備選按鈕用于在負(fù)方向移動(dòng)軸(如:a)
備選正按鈕(Alt Positive Button):備選按鈕用于在正方向移動(dòng)軸 (如:d)
重力(Gravity):當(dāng)沒有按鈕被按下调鲸,在單位每秒速度,軸下降到0挽荡。
死亡(Dead):模擬的死區(qū)大小藐石。 設(shè)定范圍內(nèi)所有模擬設(shè)備的值為0。
靈敏度(Sensitivity):在單位每秒速度定拟,軸將移向目標(biāo)值于微。這近用于數(shù)碼設(shè)備。
捕捉(Snap):如果啟用,當(dāng)按下相反方向的按鈕株依,該軸值將重設(shè)為0驱证。
反向(Invert):如果啟用,負(fù)按鈕將提供一個(gè)正值恋腕,反之亦然抹锄。
類型(Type):控制軸的輸入設(shè)備類型
軸(Axis):連接設(shè)備的軸將控制這個(gè)軸 (因?yàn)樯厦嬲?fù)按鈕設(shè)置的是左右,所以這里要選X軸)
操作桿(Joy Num)連接操縱桿將控制這個(gè)軸
移動(dòng)設(shè)備輸入
Unity 為你提供訪問(wèn)iOS/Android系統(tǒng)的Input 和 iOS Input腳本接口荠藤。

多點(diǎn)觸控

觸控列表(Input.touches):返回上一幀所有觸控狀態(tài)的對(duì)象列表(Touch[]:單個(gè)觸摸狀態(tài))伙单。

觸控狀態(tài)(TouchPhase):(例子:if(touch.phase != TouchPhase.Began))

Began:手指已觸摸屏幕。
Moved:手指在屏幕上移動(dòng)哈肖。
Stationary:手指觸摸屏幕吻育,但并沒有移動(dòng)。
Ended:手指從屏幕上移開牡彻。這是一個(gè)觸摸的最后狀態(tài)扫沼。
Canceled:系統(tǒng)取消跟蹤觸摸,如用戶把屏幕放到他臉上或超過(guò)五個(gè)接觸同時(shí)發(fā)生庄吼。這是一個(gè)觸摸的最后狀態(tài)。
設(shè)備面朝方向

Input.deviceOrientation : (例子:if (Input.deviceOrientation == DeviceOrientation.FaceDown))

Unknown:設(shè)備的方向不能被確定严就。
Portrait:設(shè)備在縱向模式总寻,設(shè)備直立并home按鈕在底部。
PortraitUpsideDown:設(shè)備在縱向模式梢为,但顛倒一下渐行,設(shè)備直立并home按鈕在頂部。
LandscapeLeft:設(shè)備在橫向模式铸董,設(shè)備直立并home按鈕在右邊祟印。
LandscapeRight:設(shè)備在橫向模式,設(shè)備直立并home按鈕在左邊粟害。
FaceUp:設(shè)備保持與地面平行蕴忆,屏幕的面向上。
FaceDown:設(shè)備保持與地面平行悲幅,屏幕的面向下套鹅。
加速傳感器

Input.acceleration :豎直拿著設(shè)備(home按鈕在底部),X軸指向右汰具,Y軸指向上卓鹿,Z軸指向前。

加速度傳感器數(shù)值可能被顛簸影響留荔。應(yīng)用低通過(guò)過(guò)濾器可以是它平滑吟孙,擺脫干擾。

//加速器刷新間隔
float AccelerometerUpdateInterval = 1.0f / 60.0f;
//值越大, 被過(guò)濾值將匯集當(dāng)前輸入采樣越慢
float LowPassKernelWidthInSeconds = 1.0f; 

//過(guò)濾范圍 
private float LowPassFilterFactor = AccelerometerUpdateInterval / LowPassKernelWidthInSeconds;

private Vector3 lowPassValue = Vector3.zero;
void Start () {
    lowPassValue = Input.acceleration;
}

//過(guò)濾方法 (獲取加速量調(diào)用此方法即可)
Vector3 LowPassFilterAccelerometer(){
    lowPassValue = Mathf.Lerp(lowPassValue, Input.acceleration, LowPassFilterFactor);
    return lowPassValue;
}

GPS地理位置定位

通過(guò)iPhoneSettings.StartLocationServiceUpdates()方法開始定位服務(wù)的更新杰妓。最后通過(guò)iPhoneInput.lastLocation可以收回位置坐標(biāo)變量藻治。

API: static void StartLocationServiceUpdates ( float desiredAccuracyInMeters = 10f,float updateDistanceInMeters = 10f)

參數(shù)1:desiredAccuracyInMeters - 理想服務(wù)精確度(單位是米)。使用更高的值像500通常不需要打開GPS芯片從而保持電池電量稚失,像5-10的值可以被用來(lái)得到最好的精確度栋艳。默認(rèn)值是10米。

參數(shù)2:updateDistanceInMeters - 最小的距離(單位是米)的一種服務(wù)在橫向移動(dòng)之前必須更新iPhoneInput.lastLocation屬性句各。像500意味著更少的開銷吸占。默認(rèn)的是10米。

void Start () {
    // 開始服務(wù)在查詢定位之前
    iPhoneSettings.StartLocationServiceUpdates();

   // 等待知道服務(wù)初始化
  //iPhoneSettings.locationServiceStatus為當(dāng)前服務(wù)狀態(tài)
    int maxWait = 20;
    while (iPhoneSettings.locationServiceStatus == LocationServiceStatus.Initializing && maxWait > 0) {
        yield return WaitForSeconds(1);
        maxWait--;
    }

    // 在20秒內(nèi)服務(wù)沒有初始化
    if (maxWait < 1) {
        print("Timed out");
        return;
    }

    // 用戶拒絕訪問(wèn)定位服務(wù)
    if (iPhoneSettings.locationServiceStatus == LocationServiceStatus.Failed) {
        print("User denied access to device location");
        return;
    }
    // 被給予許可并且定位數(shù)值可以取回
    else {
        print("Location: " + iPhoneInput.lastLocation.latitude + " " +
        iPhoneInput.lastLocation.longitude + " " +
        iPhoneInput.lastLocation .altitude+ " " +
        iPhoneInput.lastLocation.horizontalAccuracy + " " +
        iPhoneInput.lastLocation.timestamp);
    }

    // 如果不需要持續(xù)查詢刷新定位停止服務(wù)
    iPhoneSettings.StopLocationServiceUpdates();
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凿宾,一起剝皮案震驚了整個(gè)濱河市矾屯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌初厚,老刑警劉巖件蚕,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異产禾,居然都是意外死亡排作,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門亚情,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)妄痪,“玉大人,你說(shuō)我怎么就攤上這事楞件∩郎” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵土浸,是天一觀的道長(zhǎng)罪针。 經(jīng)常有香客問(wèn)我,道長(zhǎng)黄伊,這世上最難降的妖魔是什么泪酱? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮毅舆,結(jié)果婚禮上西篓,老公的妹妹穿的比我還像新娘。我一直安慰自己憋活,他們只是感情好岂津,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著悦即,像睡著了一般吮成。 火紅的嫁衣襯著肌膚如雪橱乱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天粱甫,我揣著相機(jī)與錄音泳叠,去河邊找鬼。 笑死茶宵,一個(gè)胖子當(dāng)著我的面吹牛危纫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播乌庶,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼种蝶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了瞒大?” 一聲冷哼從身側(cè)響起螃征,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎透敌,沒想到半個(gè)月后盯滚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡酗电,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年魄藕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撵术。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡泼疑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出荷荤,到底是詐尸還是另有隱情,我是刑警寧澤移稳,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布蕴纳,位于F島的核電站,受9級(jí)特大地震影響个粱,放射性物質(zhì)發(fā)生泄漏古毛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一都许、第九天 我趴在偏房一處隱蔽的房頂上張望稻薇。 院中可真熱鬧,春花似錦胶征、人聲如沸塞椎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)案狠。三九已至服傍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間骂铁,已是汗流浹背吹零。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拉庵,地道東北人灿椅。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像钞支,于是被迫代替她去往敵國(guó)和親茫蛹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 認(rèn)輸入軸: Horizontal 和 Vertical被映射到w, a, s, d鍵和方向鍵Fire1, Fire...
    _涼笙閱讀 830評(píng)論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理伸辟,服務(wù)發(fā)現(xiàn)麻惶,斷路器,智...
    卡卡羅2017閱讀 134,657評(píng)論 18 139
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)信夫、插件窃蹋、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,103評(píng)論 4 62
  • 喜歡閱讀警没,偶爾寫寫文字,喜歡跑步振湾,喜歡隔段時(shí)間出去走走杀迹。喜歡各種各樣的多肉植物,綠植中對(duì)綠蘿情有獨(dú)鐘押搪。 ...
    牛小蝸閱讀 693評(píng)論 1 6
  • 在簡(jiǎn)書中想使用markdown就要在設(shè)置中設(shè)置下:設(shè)置——基礎(chǔ)設(shè)置——選擇常用的編輯器——markdown好了現(xiàn)在...
    yyshang閱讀 427評(píng)論 2 0