2015-09-05 83 views
0

所以,我想使用camera.ViewportToWorldPoint()來顯示我的屏幕邊界的底部中心。所以,我創建了一個腳本,將該組件添加到需要它的對象中。爲什麼沒有相機連接,即使我連接了它?

using UnityEngine; 
using System.Collections; 

public class PathMovement : MonoBehaviour { 

    public Camera cam; 
    private Vector3 bound; 

    void Awake() { 
     cam = GetComponent<Camera>(); 
    } 

    void Start(){ 
     bound = cam.ViewportToWorldPoint (new Vector3 (0f, 0.5f)); 
     Debug.Log (bound); 
    } 
} 

,然後,我通過GUI附加MainCamera

enter image description here

然後,當我運行它,還是有一個錯誤說:

MissingComponentException:有沒有連接到「RiverPath」遊戲對象的「攝像頭」,但>腳本試圖訪問它。 您可能需要將相機添加到遊戲對象「RiverPath」。或者您的腳本在使用之前需要檢查組件是否已連接。 UnityEngine.Camera.ViewportToWorldPoint(Vector3 position)(在C: .cs:21)

這是很奇怪的,因爲我已經連接了主攝像頭,但不知怎的,統一沒有檢測到。我也嘗試將cam = GetComponent<Camera>();放在Awake()以及Start()上,但沒有任何效果。 :(

順便說一句,我在做Android上的移動應用程序,而且使用統一5.

有沒有辦法做到這一點正確?? 感謝。

回答

1

你得到MissingComponentException爲沒有Camera連接到特定的遊戲物體(見異常的描述)。

你需要知道的是,GetComponent只在當前遊戲對象將查找Component。根據你的遊戲對象的層次結構可能要到u se GetComponentInParentGetComponentInChildren

或者您也可以使用編輯器(拖放)連接相機。如果在運行時實例化Prefab,這可能不起作用,但在場景中靜態時應該做得很好。

+0

是的。我以某種方式拖放相機並調用GetComponent ()後面的。感謝壽 –

相關問題