2014-02-25 21 views
1

我在Unity3D中创建了一个简单的预制。 我要添加到相机的参考,所以我创建了一个公共变量m_Camera:预制不公开相机

public Camera m_Camera; 

于是我拖着预制到现场,并拖累相机到UI设置我想引用相机至。最后,我点击“应用”将更改应用到预制。

当我运行场景时,我拖入场景的预制具有摄像机引用,但我在运行时实例化的预制在变量UI中具有“无(摄像机)”。

如何在预制件上设置摄像机参考并将预制件保存在实例化预制件时使用的参考中?

TIA

编辑 我曾尝试m_Camera = Camera.main;m_Camera = GameObject.Find("ARCamera").camera; 但两者似乎并没有工作。我试图得到一个光线投射时,有上预制一个鼠标按下:

public Camera m_Camera; 

    void OnMouseDown() { 
     RaycastHit hitInfo; 
     m_Camera = Camera.main; 
     if (Physics.Raycast(m_Camera.ScreenPointToRay(Input.mousePosition), out hitInfo)) 
     { 
      Debug.Log("Prefab was pressed"); 

     } 
    } 

我们我通过UI拖动相机进入m_Camera变量在统一编辑器运行时,它的工作和我得到的输出到控制台。

+0

我不明白你所说的“分配摄像机参考m_Camera为预制”的意思。我试着直接在代码中引用相机,但没有成功,我尝试了很多不同的方式,例如找到游戏对象并获取组件。你可能有我如何完成这个的例子吗? TIA! –

+0

相机是预制件的一部分吗? – rutter

+0

@rutter不是相机不是预制件的一部分 –

回答

1

因为你可以从任何场景实例化预制件,在这种情况下,预制件将不知道前一个场景中的相机。总之,预制件可以访问全球对象或孩子。 解决方案:

设置m_Camera在开始/ onenable功能, 像

m_Camera = Camera.main;