有条件地实例化资产
本文关键字:实例化 有条件 | 更新日期: 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);
}
}
您还可以为这些对象实现池化,以获得更好的性能。