有条件地实例化资产

本文关键字:实例化 有条件 | 更新日期: 2023-09-27 18:27:57

我正在Unity中实例化.obj版本的数字。

void Update () {
    string scoreText = score.ToString ();
    string[] characters = new string[scoreText.index];
    for (int i = 0; i < scoreText.Length; i++)
    {
        Instantiate (Resources.Load (characters[i]) as GameObject);
        gameObject.layer = 8;
    }
    }

我将所有对象放在Assets文件夹中一个名为Resources的文件夹中。我以它们的数字命名,例如1、2、3等。我把比分变成一串。对于每个角色,加载资源。

我在这里做错了什么?

有条件地实例化资产

characters为空。你们并没有在里面放任何数据,也并没有改变那个些实例化的游戏对象的层。

试试这个

List<GameObject> destroyList = new List<GameObject>();
void UpdateScore()
{
    foreach (var go in destroyList)
    {
        Destroy(go);
    }
    destroyList.Clear();

    string scoreText = score.ToString ();
    for (int i = 0; i < scoreText.Length; i++)
    {
        var go = (GameObject)Instantiate(Resources.Load(scoreText[i].ToString());
        go.layer = 8;
        go.transform.localScale = Vector3.one;
        go.transform.localPosition = Vector3.zero;
        destoryList.Add(go);
    }
}

您还可以为这些对象实现池化,以获得更好的性能。