为什么没有连接相机,即使我已经附上相机?

时间:2015-09-05 04:05:51

标签: c# unity3d camera

所以,我想使用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”游戏对象没有附加“Camera”,但是&gt;脚本正在尝试访问它。   您可能需要向游戏对象“RiverPath”添加一个Camera。或者您的脚本需要在使用之前检查&gt;组件是否已连接。   UnityEngine.Camera.ViewportToWorldPoint(Vector3位置)(在C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineCamera.gen.cs:408)   PathMovement.Start()(在Assets / Scripts / PathMovement.cs:21)

这是非常奇怪的,因为我已经连接了主摄像头,但不知何故,团结没有检测到。我也尝试将cam = GetComponent<Camera>();放在Awake()以及Start()上,但都没有效果。 :(

顺便说一句,我在Android上制作移动应用程序。并使用统一5。

有没有办法正确地做到这一点? 感谢。

1 个答案:

答案 0 :(得分:1)

您正在获取MissingComponentException,因为该特定GameObject没有附加Camera(请参阅“例外”说明)。

您需要知道的是GetComponent仅查找当前GameObject中的Component。根据您的GameObject层次结构,您可能希望改为使用GetComponentInParentGetComponentInChildren

或者您也可以使用编辑器附加相机(拖放)。如果你在运行时实例化Prefab,这可能不起作用,但是当它在场景中的静态时应该做得很好。