1. 程式人生 > >25.Unity3D手機中Input類touch詳解-Unity觸屏事件解析到底(Twisted Fate)

25.Unity3D手機中Input類touch詳解-Unity觸屏事件解析到底(Twisted Fate)

首先貼一下Unity支援的模型檔案型別,以前沒有收集過。

Unity支援兩種型別的3D檔案格式:

1.  通用的“出口型”3D檔案

.fbx.dae.3ds.dxf.obj等檔案格式。

2.  3D軟體專用的3D檔案格式

Max, Maya, Blender,Cinema4D, Modo, Lightwave & Cheetah3D 等軟體所支援的格式,.MAX, .MB, .MA等等。

Unity3D手機中Input類touch詳解:

1.Input.touchCount 觸控隨之增長,一秒50次增量。

2.Input.GetTouch(0).phase==TouchPhase.Moved 手指滑動中最後一幀滑動的狀態是運動的。

3.TouchPhase  觸控的幾個狀態。

4.Touch.deltaPosition 增量位置(Input.GetTouch(0).deltaPosition)最後一幀滑動的值,只返回xy軸座標,也可用vector3(z軸為0),所以一般用vector2接收。

 1 static var aa:int;
 2 function Update () {
 3 if(Input.touchCount>0)
 4 {
 5 print(Input.touchCount);
 6 }
 7 }
 8 function OnGUI()
 9 {
10 GUI.Label(Rect(34
,34,34,34),"sdff"); 11 }

touchCount指的是觸控幀的數量。要注意的是:touch事件 只能在模擬器或者真機上執行(已測試通過),大約一秒鐘touch不放。touchCount+50次左右。2.Input.touches 觸控列表。

// Prints number of fingers touching the screen
//輸出觸控在螢幕上的手指數量
function Update () {
var fingerCount = 0;
for (var touch : Touch in Input.touches) {
if (touch.phase != TouchPhase.Ended && touch.phase != TouchPhase.Canceled)
fingerCount
++; } if (fingerCount > 0) print ("User has " + fingerCount + " finger(s) touching the screen"); }

3.讓cube隨著touch 移動程式碼:

static var count:int; //定義touchCount數
var particle_:GameObject;//定義存放cube物件
var touchposition:Vector3; //儲存移動三維座標值
function Update () {
if(Input.touchCount>0)
{
count+=Input.touchCount;}
if((Input.touchCount>0&&Input.GetTouch(0).phase==TouchPhase.Moved)) //[color=Red]如果點選手指touch了  並且手指touch的狀態為移動的[/color]
{
touchposition=Input.GetTouch(0).deltaPosition;  //[color=Red]獲取手指touch最後一幀移動的xy軸距離[/color]
particle_.transform.Translate(touchposition.x*0.01,touchposition.y*0.01,0);//[color=Red]移動這個距離[/color]
}}
function OnGUI()
{
GUI.Label(Rect(10,10,100,30),"cishu:"+count.ToString());
GUI.Label(Rect(10,50,100,30),touchposition.ToString());
}

 移動物體:

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    public float speed = 0.1F;
    void Update() {
        if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved) {
            Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
            transform.Translate(-touchDeltaPosition.x * speed, -touchDeltaPosition.y * speed, 0);
        }
    }
}

點選碰撞克隆:

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    public GameObject projectile;
    void Update() {
        int i = 0;
        while (i < Input.touchCount) {
            if (Input.GetTouch(i).phase == TouchPhase.Began)
                clone = Instantiate(projectile, transform.position, transform.rotation) as GameObject;
            
            ++i;
        }
    }
}

點選螢幕,射線法發射一個粒子

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    public GameObject particle;
    void Update() {
        int i = 0;
        while (i < Input.touchCount) {
            if (Input.GetTouch(i).phase == TouchPhase.Began) {
                Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(i).position);
                if (Physics.Raycast(ray))
                    Instantiate(particle, transform.position, transform.rotation) as GameObject;
                
            }
            ++i;
        }
    }
}

相關推薦

25Unity3D手機Inputtouch-Unity事件解析到底(Twisted Fate)

首先貼一下Unity支援的模型檔案型別,以前沒有收集過。 Unity支援兩種型別的3D檔案格式: 1.  通用的“出口型”3D檔案 如.fbx、.dae、.3ds、.dxf、.obj等檔案格式。 2.  3D軟體專用的3D檔案格式 如Max, Maya, Blender,Cinema4D, Modo

Unity3D手機Inputtouch

Unity3D手機中Input類touch詳解: 1.Input.touchCount 觸控隨之增長,一秒50次增量。 2.Input.GetTouch(0).phase==TouchPhase.Moved 手指滑動中最後一幀滑動的狀態是運動的。 3.TouchPh

c++string

通過在網站上的資料蒐集,得到了很多關於string類用法的文件,通過對這些資料的整理和加入一些自己的程式碼,就得出了一份比較完整的關於string類函式有哪些和怎樣用的文件了! 下面先羅列出string類的函式有哪一些,然後再羅列出函式的原型,最後到程式碼的實現 標準C++中提供的string類得功能也是非常

bootstrap常用的元素

一個 分別是 viewport 工作 ima 布局 -h containe 間距 1 .col 是用來快速構造的網格的類。一般會根據視口改變大小,有三個類別分別是.col-sm .col-md .col-xs分別適配大屏,中屏,大屏。響應式網格系統隨著屏幕或視口(view

Django 檢視

在寫檢視的時候,Django除了使用函式作為檢視,也可以使用類作為檢視。使用類檢視可以使用類的一些特性,比如繼承等。 View檢視: django.views.generic.base.View是主要的類檢視,所有的類檢視都是繼承自他。如果我們寫自己的類檢視,也可以繼承自他。然後再根

手把手教你ExtJS從入門到放棄——篇二十四(示例21:Ext.dom.Element操作樣式方法

只挑幾個講解: applyStyle:引數可以是如下形式,也可以是物件形式:物件的屬性為樣式如{width:300px},或者是個方法,返回值形式為 前面兩種 setStyle:跟jquery裡的css方法一樣,第一個引數是樣式屬性的key,第二個是值

Scala和物件,實用樣例詳細解析

Scala類 簡介 類是物件的抽象,而物件是類的具體例項。類是抽象的,不佔用記憶體,而物件是具體的,佔用儲存空間。類是用於建立物件的藍圖,它是一個定義包括在特定型別的物件中的方法和變數的軟體模板。 Scala中的類不宣告為public,一個Scala原始檔中可

JDK正則表示式(一)

二、以下是自己對正則表示式的一些理解。    [size=medium]1. 正則表示式規則1.1 普通字元    字母、數字、漢字、下劃線、以及後邊章節中沒有特殊定義的標點符號,都是"普通字元"。表示式中的普通字元,在匹配一個字串的時候,匹配與之相同的一個字元。    舉例1:表示式 "c",在匹配字串 "

JavaArrays的binarySearch方法

1.它有很多過載的方法: static int 使用二分搜尋法來搜尋指定的 byte 型陣列,以獲得指定的值。 static int (byte[] a, int fromIndex, int toIndex, byte key) 使用二分搜尋法來搜尋指定的 byte

Java的Arrays使用

首先先建立一個列印陣列的方法,方便後面直接使用 public static void output(int []a) { for(int i=0;i<a.length;i++) { System.out.pri

C++拷貝建構函式

a. C++標準中提到“The default constructor, copy constructor and copy assignment operator, and destructor are special member functions.[Note: T

Java學習札記12:Java的StringBuilder功能

字串是 Java 程式中最常用的一種資料結構之一。在 Java 中的 String 類已經過載的"+"。也就是說,字串可以直接使用"+"進行連線,如下面程式碼所示: String s = "abc" + "ddd"; 但這樣做真的好嗎?當然,這個問題不能簡單地回答 Yes

手機端html5事件(touch事件)3

touchstart:觸控開始的時候觸發 touchmove:手指在螢幕上滑動的時候觸發 touchend:觸控結束的時候觸發 而每個觸控事件都包括了三個觸控列表,每個列表裡包含了對應的一系列觸控點(用來實現多點觸控): touches:當前位於螢幕上的所有手指的

Unity3Dtexture2D函式使用

在Unity3D中可以使用指令碼建立texture2D貼圖,並對畫素進行操作。 對Texture2D畫素操作後,一定要Apply for (int i = 0; i < 100; i++) { for

html5手機事件(touch事件)第二章

touchstart: // 手指放到螢幕上的時候觸發 touchmove: // 手指在螢幕上移動的時候觸發 touchend: // 手指從螢幕上拿起的時候觸發 touchcanc

Python 在子呼叫父方法(單繼承、多層繼承、多重繼承)

測試環境: win7 64位 Python版本:Python 3.3.5 程式碼實踐: 1、在子類中通過“類名”呼叫父類的方法 class FatherA: def __init__(self): print('init

Java 8 新的 Date 和 Time 入門, DateUtil ,以後可以少寫幾個了,關鍵是執行緒安全了

這篇文章主要是java8中新的Date和Time API的實戰。新的Date和Time類是java開發者社群千呼萬喚始出來的。Java8 之前存在的Date類一直都受人詬病,很多人都會選擇使用第三方的date庫joda-time。Java8中的date和time api

JavaScriptreturn的用法

style 返回 www log tle blog 意思 charset fun 1、定義:return 從字面上的看就是返回,官方定義return語句將終止當前函數並返回當前函數的值,可以看下下面的示例代碼: <!DOCTYPE html><html l

Buffer(轉)

iteye 原始數據類型 pub bst exception 如何 數字 硬件 final Buffer 類是 java.nio 的構造基礎。一個 Buffer 對象是固定數量的數據的容器,其作用是一個存儲器,或者分段運輸區,在這裏,數據可被存儲並在之後用於檢索。緩沖區可以

[轉]C#進階系列——WebApi 接口返回值不困惑:返回值

try 接口測試工具 des rep home creat port 調用 學習 本文轉自:http://www.cnblogs.com/landeanfen/p/5501487.html 閱讀目錄 一、void無返回值 二、IHttpActionResult