2017-03-01 22 views
2

Unity在這個鏈接上有這個樣例項目「Roll a Ball」:https://unity3d.com/learn/tutorials/projects/roll-ball-tutorial統一示例項目「滾動球」在iPad上不起作用(球不動)?

我已經能夠在我的Mac上構建並使其工作100%。我可以使用鍵盤上的箭頭鍵移動球。一切適用於Mac平臺。然而,當我使用相同的代碼在我的iPad上構建和部署此遊戲時,我注意到當我用手指移動球時,球根本不動。 (唯一的好處是所有的立方體都旋轉得很好)

所以,我的問題是,如果我需要修改C#腳本以使其適用於iPad(儘管該腳本已經適用於Mac)?

這裏是球的C#腳本:

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 
using UnityEngine.UI; 

public class PlayerController : MonoBehaviour 
{ 

    public float speed; 
    public Text countText; 
    public Text winText; 

    private Rigidbody rb; 
    private int count; 

    void Start() 
    { 
     rb = GetComponent<Rigidbody>(); 
     count = 0; 
     SetCountText(); 
     winText.text = ""; 
    } 

    void FixedUpdate() 
    { 
     float moveHorizontal = Input.GetAxis ("Horizontal"); 
     float moveVertical = Input.GetAxis ("Vertical"); 

     Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical); 

     rb.AddForce (movement * speed); 
    } 

    void OnTriggerEnter(Collider other) 
    { 
     if (other.gameObject.CompareTag ("Pick up")) 
     { 
      other.gameObject.SetActive (false); 
      count = count + 1; 
      SetCountText(); 
     } 
    } 

    void SetCountText() 
    { 
     countText.text = "Count: " + count.ToString(); 
     if (count >= 12) 
     { 
      winText.text = "You Win!"; 
     } 
    } 
} 

*有趣的是,我剛纔注意到,輸入的類型有方法 「GetTouch()」。也許,我可以嘗試在iPad上使用該方法?最初,我希望上面的C#腳本中適用於Mac的通用代碼也適用於iPad?也許,我的假設是錯誤的,我需要用iPad的「GetTouch()」編寫一組不同的代碼。好吧,我認爲這是可能的解決方案,並且現在會嘗試... *

PS:順便說一句,我正在使用最新的Unity(版本5.5.2f1)和最新的XCode(8.2.1)作爲2017年2月。我iPad上的iOS也是最新的(版本10.2.1)。

回答

1

我從來沒有在Unity中爲iPad創建任何內容,但是使用您提供的描述,我認爲問題不在您的腳本中。我會建議你,而不是檢查,如果一切都在輸入經理正確鏈接 (編輯 - >項目設置 - >輸入)

https://docs.unity3d.com/Manual/class-InputManager.html

我認爲這個問題是遊戲沒有從檢測你的輸入iPad兼容。您可以嘗試在x軸上添加恆定速度的球,如果它移動,您可以將注意力集中在輸入管理器中。

此外,檢查此鏈接: http://wiki.unity3d.com/index.php?title=Basic_iOs_Input_Tutorial

+0

感謝您的意見。當然,讓我看看。 Mac和iPad處理「用戶輸入」的方式似乎不同。我希望我的帖子中的通用代碼對兩個平臺都足夠好。但是,讓我看看你的文件,看看....謝謝。 :-) – Thanh

+0

沒問題。我希望我可以添加一個我自己的樣本,但我沒有擁有一個ipad並且不能測試它們。 –

1

你必須改變輸入設置。我不知道在哪裏找到它們,但是你可以改變輸入「水平」和「垂直」。你應該多看看這個,因爲你還可以添加輸入,如果你想擁有超過遊戲控制權的所有權力,這是非常有用的。

哦,發現它只是看以前的答案。

+0

雖然我的英語很抱歉。 –

+0

感謝您的輸入。我會嘗試。我注意到INPUT類型有一個方法「GetTouch()」,這可能是我可以嘗試用於iPad的方法。然而,我希望Unity的目的是「爲通用代碼編寫一次併爲所有平臺構建」,而不是「爲不同的平臺編寫不同的方法來讀取'用戶輸入'......」但是,讓我試試你的建議,看看它是如何發展的。謝謝。 – Thanh

+0

也是如此:因爲Touch類是觸摸屏幕時實例化的對象,所以可以嘗試'foreach(在Input.touches中觸摸t){}'並獲取該觸摸的屬性。 –