在Update
函数中:
UpdateSpheres
创建对象然后移动它们,但它们移动速度很慢。
private void Update()
{
UpdateSpheres();
MoveShips();
}
private void MoveShips()
{
var spheres = GameObject.FindGameObjectsWithTag("MySphere");
foreach (Transform child in spheres[0].transform)
{
child.transform.position += Vector3.forward * Time.deltaTime;
}
}
答案 0 :(得分:4)
在每一帧中调用FindGameObjectsWithTag
非常慢。在Start
函数中调用一次。还可以添加一个可用于多个的公共速度变量来更改速度。您可以从编辑器修改此速度变量,直到获得所需的速度。请务必查看脚本的其余部分,确保您未在GameObject.Find
函数中使用FindGameObjectsWithTag
,Update
或类似函数。
GameObject[] spheres;
public float moveSpeed = 50;
void Start()
{
spheres = GameObject.FindGameObjectsWithTag("MySphere");
}
private void Update()
{
UpdateSpheres();
MoveShips();
}
private void MoveShips()
{
foreach (Transform child in spheres[0].transform)
{
child.transform.position += Vector3.forward * Time.deltaTime * moveSpeed;
}
}