Unity3D for iOS初級教程:Part 1/3(下)

來源:互聯網
上載者:User

標籤:

轉自:http://www.cnblogs.com/alongu3d/archive/2013/06/01/3111735.html

一個手指來統治他們

但是等等,你還沒有完全完成!

如果你玩遊戲有一會,你會注意到有些奇怪的事情。你可以通過一個手指來移動方塊,但是當你用兩個手指離開它相同的距離方塊也可以被移動。這是什麼回事呢?

從你的MoveSimple指令碼中回憶起這行:

var ray : Ray = Camera.main.ScreenPointToRay                     (Input.mousePosition);

它建立了一條從網路攝影機到觸摸點的射線。觸摸點用Input.mousePosition來表示。當你在iOS裝置上啟動並執行時候,Input.mousePosition是作為所有當前觸摸點平均位置來計算的。放置你的手指,若平均值落在角色上,就會讓角色移動!

你應該修正這點來避免困擾使用者。你可以使用Unity中可以使用的觸摸相關函數來監測觸摸事件,並且找到一個更加精確的觸摸位置。

開啟你的MoveSimple指令碼。在檔案的最上面(其他變數所在的位置)添加一個標誌,來指示你可以使用觸摸輸入:

private var isTouchDevice : boolean = false;

你這樣做了後,你就可以測試回合在iOS和Unity編輯器上。如果你只打算在iOS上測試,那麼你可以跳過觸摸檢查的邏輯,然後簡單的使用觸摸相關的函數。

下一步添加一個Awake()函數,來完成一個運行時的檢查,探知遊戲是否運行在一個iOS環境下。這個Awake()函數僅僅被調用一次,就是當遊戲載入的時候:

function Awake() {    if (Application.platform == RuntimePlatform.IPhonePlayer)         isTouchDevice = true;     else        isTouchDevice = false; }

Application.platform返回遊戲正在啟動並執行平台。RuntimePlatform.IPhonePlayer指示遊戲正運行在iOS上。

最後,根據下面修改你的Update()函數來處理觸摸輸入:

function Update () {    var clickDetected : boolean;    var touchPosition : Vector3;    // Detect click and calculate touch position    if (isTouchDevice) {        clickDetected = (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began);        touchPosition = Input.GetTouch(0).position;    } else {        clickDetected = (Input.GetMouseButtonDown(0));        touchPosition = Input.mousePosition;    }    // Detect clicks    if (clickDetected) {                // Check if the GameObject is clicked by casting a        // Ray from the main camera to the touched position.        var ray : Ray = Camera.main.ScreenPointToRay                             (touchPosition);        var hit : RaycastHit;         ...

儲存你的修改。

你正在使用兩個新的變數,clickDetected和touchPosition,來監測點擊和儲存點擊的位置。如果在iOS上運行,你通過檢查觸摸是在開始狀態來判斷點擊。然後根據首個觸摸來計算點擊的位置。如果你沒有運行在iOS上,邏輯和之前的一樣。

在重新構建項目之前,關閉Xcode項目。現在重新在Unity中的Build Settings對話方塊裡構建。如果出現帶有一個關於構建的檔案夾已經存在的警告,選擇Replace.

當Xcode項目構建完成,開啟它,然後在你的iOS裝置上運行。核對你可以移動英勇的小方塊,而且讓你用兩個手指移動它的錯誤已經消失了。

向哪裡進發?

恭喜你已經完成學慣用Unity開發的基礎部分,和如何部署到iOS上!這裡有一些從項目開始到目前為止的所有的代碼下載: Unity Project, Xcode Project.

這份教程的下個部分,通過增強英勇的小方塊的移動和改善情境,你會構建這個非常簡單的遊戲。你也會做一些調試的工作!

在此期間,如果你有任何關於到目前位置你所做的問題或建議,請跳轉到論壇中的相關會話中!

Unity3D for iOS初級教程:Part 1/3(下)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.