2015-12-27 78 views
0

我已经创建了几个Sphere对象,并将它们添加到Unity3d中的场景中。现在我需要将这些对象传递给我的脚本并处理这些对象。 我该怎么做?例如,当我需要地形对象传递给剧本我会写......如何将Sphere作为参数传递给Unity3d中的脚本?

public class A: MonoBehaviour { 
    public Terrain terrain; 
    void Start() { 
     terrain = terrain.GetComponent<Terrain>(); 
    } 
    ..... 
} 

...这会工作,但我不能写:

public class A: MonoBehaviour { 
    public Sphere sphere; 
    void Start() { 
     sphere = sphere.GetComponent<Sphere>(); 
    } 
    ..... 
} 

因为没有像Sphere这样的类型(对吧?)。

回答

1

使用游戏物体(这是大多数场景中物体的类型),而不是球作为您的参考类型。

什么GameObjects也http://docs.unity3d.com/Manual/GameObjects.html见。

+0

我知道我能做到这一点,但我想我会失去很多的功能,如果我会写'公共游戏对象sphere'。我的意思是,我将如何改变让我们说球体的半径? – sdafsDGZvb

+1

如果你正在谈论PrimitiveType Sphere,你所做的只是改变你的GameObject的localScale。在编辑器中更改半径时,这正是Unity所做的。 如果你真的需要访问一个部门的成员,你可以使用anyObject.GetComponent ()该组成部分。然而球体本身不是组件,它只是一个选择网格的标识符。 –

+0

由于NULL,我得到错误。这就是编辑器中的所有东西都是如何链接的(风下的对象是领域)http://prntscr.com/9j6nrn。在这个脚本中,所有的shperes都是用这样的线设置的:'center = center.GetComponent ();'。我究竟做错了什么? – sdafsDGZvb