2015-12-27 77 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