所以,我想使用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
然后,当我运行它时,仍有错误说:
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。
有没有办法正确地做到这一点? 感谢。
答案 0 :(得分:1)
您正在获取MissingComponentException
,因为该特定GameObject没有附加Camera
(请参阅“例外”说明)。
您需要知道的是GetComponent
仅查找当前GameObject中的Component
。根据您的GameObject层次结构,您可能希望改为使用GetComponentInParent或GetComponentInChildren。
或者您也可以使用编辑器附加相机(拖放)。如果你在运行时实例化Prefab,这可能不起作用,但是当它在场景中的静态时应该做得很好。