实例化移动的原始对象
Instantiate moving original object
我确定这是一个简单的修复,但我是 Unity 的新手,我无法弄清楚。我有一个球,当它掉落并与屏幕底部碰撞时,它会在屏幕上随机创建另一个球。这个过程将一直持续到指定的最大数量的球出现在屏幕上。它基本上可以工作,但是当第一个球击中底部并生成一个新球时,原始球似乎被重新创建或在屏幕上随机位置向上移动。我希望球不断弹跳并产生新球。
这里是相关代码。
void OnTriggerEnter2D (Collider2D collision)
{
if (collision.gameObject.name == "tile" && balls < maxBalls )
{
balls = balls + 1;
randomX = Random.Range(-3, 4);
randomY = Random.Range(-3, 4);
transform.position = new Vector3(randomX, randomY, transform.position.z);
Instantiate(ball, transform.position, transform.rotation);
NumberofBalls();
}
}
它移动原始球的原因是因为这条线:
transform.position = new Vector3(randomX, randomY, transform.position.z);
这设置了当前对象的位置。
如果你只想在随机位置生成新对象,你应该这样做:
void OnTriggerEnter2D (Collider2D collision)
{
if (collision.gameObject.name == "tile" && balls < maxBalls )
{
balls = balls + 1;
randomX = Random.Range(-3, 4);
randomY = Random.Range(-3, 4);
Vector3 newPosition = new Vector3(randomX, randomY, transform.position.z);
Instantiate(ball, newPosition, transform.rotation);
NumberofBalls();
}
}
我确定这是一个简单的修复,但我是 Unity 的新手,我无法弄清楚。我有一个球,当它掉落并与屏幕底部碰撞时,它会在屏幕上随机创建另一个球。这个过程将一直持续到指定的最大数量的球出现在屏幕上。它基本上可以工作,但是当第一个球击中底部并生成一个新球时,原始球似乎被重新创建或在屏幕上随机位置向上移动。我希望球不断弹跳并产生新球。
这里是相关代码。
void OnTriggerEnter2D (Collider2D collision)
{
if (collision.gameObject.name == "tile" && balls < maxBalls )
{
balls = balls + 1;
randomX = Random.Range(-3, 4);
randomY = Random.Range(-3, 4);
transform.position = new Vector3(randomX, randomY, transform.position.z);
Instantiate(ball, transform.position, transform.rotation);
NumberofBalls();
}
}
它移动原始球的原因是因为这条线:
transform.position = new Vector3(randomX, randomY, transform.position.z);
这设置了当前对象的位置。
如果你只想在随机位置生成新对象,你应该这样做:
void OnTriggerEnter2D (Collider2D collision)
{
if (collision.gameObject.name == "tile" && balls < maxBalls )
{
balls = balls + 1;
randomX = Random.Range(-3, 4);
randomY = Random.Range(-3, 4);
Vector3 newPosition = new Vector3(randomX, randomY, transform.position.z);
Instantiate(ball, newPosition, transform.rotation);
NumberofBalls();
}
}