2015-09-05 89 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 ()后面的。感谢寿 –

相关问题