unity3D實現多點觸碰


實現多點觸碰是利用input這個類里面的方法實現的。

從edit-project settings-input就可以看到input能夠得到的軸。

想要讀取軸向可以使用Input.GetAxis方法獲取下列默認軸: “Horizontal” 和“Vertical” 映射於控制桿、A、W、S、D和箭頭鍵(方向鍵)。 “Mouse X” 和“Mouse Y” 映射於鼠標,“Fire1”, “Fire2” “Fire3”映射於鍵盤的Ctrl、Alt、Cmd鍵和鼠標中鍵或控制器的按鈕

iOS和Android設備能夠支持多點觸控。你可以通過Input.touches屬性集合訪問在最近一幀中觸摸在屏幕上的每一根手指的狀態數據。

當設備移動時,它們的加速感應器硬件將報告它們在三維空間中沿着三個主軸的線性加速變化數據。你可以使用這些數據檢測設備當前的移動方向(相對於地面)和突然間的方向改 變。

硬件沿着某感應一軸加速就會立即返回重力值。如果值為1.0代表沿着給定軸的方向+1g的重力加速度,如果值為-1.0代表-1g的重力加速度。如果你保持設備垂直(主頁鍵在下方)在你正前方,那么X軸就是指向你右側的方向,Y軸指向正上方,Z軸就是你所面向的方向。

你可以讀取Input.acceleration屬性獲得設備的加速度信息。你也可以使用Input.deviceOrientation屬性獲取設備在三維空間中的方位偏移。檢測方位變化在你想要制作游戲行為中會非常有用,當用戶轉動設備或拿着設備時它是不同的。

速度感應裝置在每一幀中能夠輪詢多次,想訪問上一幀的所有速度樣本你可以讀取Input.accelerationEvents屬性集合。這在重組玩家動作中會非常有用

 1 using UnityEngine;using System.Collections; 
 2 public class ExampleClass : MonoBehaviour {    
 3 public GameObject particle;   
 4  void Update() {      
 5  for (var i = 0; i < Input.touchCount; ++i) {
 6             if (Input.GetTouch(i).phase == TouchPhase.Began) {                 // Construct a ray from the current touch coordinates
 7                 Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(i).position);
 8                 // Create a particle if hit
 9                 if (Physics.Raycast(ray))
10                     Instantiate(particle, transform.position, transform.rotation) as GameObject;                
11             }       
12        }   
13    }
14 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM