C# 抛后产卵
我正在做一个足球比赛项目。我想要一个球体,我必须在抛出第一个球体后生成另一个球体。以下是我尝试过的:C# 抛后产卵,c#,unity3d,C#,Unity3d,我正在做一个足球比赛项目。我想要一个球体,我必须在抛出第一个球体后生成另一个球体。以下是我尝试过的: public class spawn : MonoBehaviour { public Transform[] SpawnPoints; public float SpawnTime; public GameObject ball; // Use this for initialization void Start () { Invoke
public class spawn : MonoBehaviour {
public Transform[] SpawnPoints;
public float SpawnTime;
public GameObject ball;
// Use this for initialization
void Start () {
InvokeRepeating ("SpawnBalls", SpawnTime, SpawnTime);
}
void SpawnBalls(){
if (transform.position.z > -0.904 ) {
int SpawnIndex = Random.Range (0, SpawnPoints.Length);
Instantiate (ball, SpawnPoints [SpawnIndex].position, SpawnPoints [SpawnIndex].rotation);
}
}
}
如果最后抛出的球足够远,只需实例化一个新球。试试这个:
public class spawn : MonoBehaviour {
public Transform[] SpawnPoints;
public GameObject ball;
public GameObject lastBall;
// Use this for initialization
void Start () {
int SpawnIndex = Random.Range (0, SpawnPoints.Length);
lastBall = Instantiate (ball, SpawnPoints [SpawnIndex].position, SpawnPoints [SpawnIndex].rotation) as GameObject;
}
void Update(){
if (lastBall.position.z > -0.904 ) {
int SpawnIndex = Random.Range (0, SpawnPoints.Length);
lastBall = Instantiate (ball, SpawnPoints [SpawnIndex].position, SpawnPoints [SpawnIndex].rotation) as GameObject;
}
}
}
这里有什么问题?什么不起作用?。。。你的问题是…?它在工作,但不是我想要的方式。我只想在我抛出第一个球体后球体变成spwan,但我的代码在一段时间后监视球体。我想在我抛出第一个对象后我的对象变成spwanair@amyThank你,但我得到一个错误,它说“显式转换存在(你是否缺少转换?)@alterego Replace
lastBall=实例化(球,繁殖点[SpawnIndex]。位置,繁殖点[SpawnIndex]。旋转)代码>与lastBall=实例化(球,繁殖点[SpawnIndex]。位置,繁殖点[SpawnIndex]。旋转)作为游戏对象
@alterego程序员建议的编辑是否解决了您的问题?只是在我点击play后一次重新绘制了太多对象。在第14行,是否最佳实践/更有效地将作为GameObject
执行,或者在行的开头使用(GameObject)
将其转换为GameObject?这可能会解决@alterego“存在显式转换”的问题