2016-10-19 115 views
1

我正在嘗試爲Kerbal Space Program編寫一個使用Unity的遊戲。我有一個類是MonoBehaviour的孩子,它正確加載和所有的。這個mod的一部分涉及在當前場景中創建一個新的光源。我的問題如下:是否可以使用腳本而不是Unity引擎場景編輯器(我顯然無法訪問Mod)在當前場景中創建新的Unity光源。諸如此類的事情,我在尋找的我可以在Unity中通過腳本創建光源嗎?

實例(我知道這不會實際上看起來這樣的事,但只給你什麼,我需要一個想法)

UnityEngine.getCurrentScene().createObject(new Light(pos, direction, color, strength));

回答

1

創建gameobject並添加light組件:

using UnityEngine; 
using System.Collections; 

public class ExampleClass : MonoBehaviour { 
    void Start() { 
     GameObject lightGameObject = new GameObject("The Light"); 
     Light lightComp = lightGameObject.AddComponent<Light>(); 
     lightComp.color = Color.blue; 
     lightGameObject.transform.position = new Vector3(0, 5, 0); 
    } 
} 
+0

好的,這是否也會將您創建的GameObject添加/加載到活動場景中?或者我需要額外的代碼嗎?對不起,我對Unity的瞭解不多,而且我沒有看到任何明確將lightGameObject添加到場景中的功能,所以如果它通過構造函數在後臺執行,或者我不知道。 –

+0

您將需要使用場景管理器,然後獲取活動場景,然後運行此代碼並將其添加到活動場景。 https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.html –

+0

基本上獲取活動場景並添加燈光是兩個獨立的部分,添加上面的代碼,一旦你有活動的場景,它會工作。 –

相關問題