我在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之后命名他们。 我把分数变成了一个字符串。 对于每个角色,请加载资产。
我在这里做错了什么?
答案 0 :(得分:1)
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);
}
}
您还可以为这些对象实现池化以获得更好的性能。