基本上是否有一種實際的節省時間的方法來創建一個函數,讓您創建一個由函數參數指定的GameObject?在Unity中創建遊戲對象的自動方法?
喜歡:
public void thing_maker(string gameobject_name, string sprite_name, string rg_body_name)
基本上是否有一種實際的節省時間的方法來創建一個函數,讓您創建一個由函數參數指定的GameObject?在Unity中創建遊戲對象的自動方法?
喜歡:
public void thing_maker(string gameobject_name, string sprite_name, string rg_body_name)
這個例子應該做你所需要的。 它要求您有一個名爲的資源文件夾,並且要加載的精靈將位於該文件夾內。
另一種選擇是做GameObject go = Instantite(SomePrefabName) as GameObject
insigned new GameObject()
,如果你有一個預製好的,你只想改變一些組件的值。
祝你好運。
public GameObject thing_maker(string gameobject_name, string sprite_name, string rg_body_name)
{
GameObject go = new GameObject(gameobject_name);
SpriteRenderer sr = go.AddComponent<SpriteRenderer>();
sr.sprite = Resources.Load<Sprite>(sprite_name);
Rigidbody rb = go.AddComponent<Rigidbody>();
/* now if you want to change values of the components you can just do it
by accesing them directly. for instance: rb.isKinematic = true; will
change the isKinematic value of this rigidbody to true. */
return go;
}
在我看來,你可以嘗試這樣的事:
public void ThingMaker(string gameobject_name, Sprite spriteToDraw) {
GameObject newObj;
newObj= new GameObject(gameobject_name);
newObj.AddComponent<Rigidbody2D>();
newObj.AddComponent<SpriteRenderer>();
newObj.GetComponent<SpriteRenderer>().sprite = spriteToDraw;
}
是的,你可以調用'新遊戲物體()'(這將創建一個空白的,空的遊戲物體)到你可能會添加組件(通過'AddComponent()')或調用['UnityEngine.Object.Instantiate(gameObjectToCopy)'](http://docs.unity3d.com/ScriptReference/Object.Instantiate.html)創建一個副本。您也可以在運行時實例化預製件。一些詳細的信息在這裏:http://docs.unity3d.com/Manual/InstantiatingPrefabs.html –
好,但你可以指定'GameObject()'的名字從一個參數'thing_maker()'?就像調用'thing_maker(go_player,sprt_player,rgdbdy_player)'將創建一個名爲go_player的遊戲對象,一個名爲sprt_player的精靈等。 – novasniff
當然,只需檢查[文檔](http://docs.unity3d.com/ScriptReference/遊戲對象-ctor.html)。您必須自己添加組件或實例化預製件,但是阻礙您嘗試實施此方法的原因是什麼? – 31eee384