在Unity中自动创建游戏对象的方法
本文关键字:游戏 对象 方法 创建 Unity | 更新日期: 2023-09-27 18:11:32
是否存在一种节省时间的方法去创造一个让你能够创造一个由函数参数指定的GameObject的函数?
:
public void thing_maker(string gameobject_name, string sprite_name, string rg_body_name)
这个例子应该可以满足您的需要。它要求你有一个名为Resources的文件夹,并且你想要加载的精灵将在该文件夹中。
另一个选择是做GameObject go = Instantite(SomePrefabName) as GameObject
而不是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;
}