【发布时间】:2022-01-10 18:35:13
【问题描述】:
所以基本上我在移动设备上创建了一个太空沙盒游戏,您可以在其中创建自己的宇宙。在游戏开始时,您可以选择您的火箭。每个火箭都有自己的相机、播放器和生成器。不是最好的解决方案,但它有效。在玩家选择了他的火箭后,我摧毁了非活动的产卵器,所以它们不起作用。 我的问题是当退出场景并选择不同的火箭并重复该过程时,带有所有 Spawner 的所有引用的 SpawningManager 丢失了对它们的引用。即使我重新加载了场景,所有引用仍然丢失。 对不起,如果这很难理解,但很难解释。
这是销毁spawner的部分代码(用颜色表示)
if (BlueSelected == true)
{
Destroy(RedSpawner);
Destroy(OrangeSpawner);
Destroy(YellowSpawner);
Destroy(GreenSpawner);
}
以及行星生成器之一的一部分(以颜色表示)
{ 公共变换 SpawnPointBlue、SpawnPointRed、SpawnPointOrange、SpawnPointYellow; 公共游戏对象 Mercury;
// Checks if the Spawner is greater than null (There or not) and Instantiates the Object at the Players Position
public void SpawnMercury()
{
if(SpawnPointBlue != null)
{
Instantiate(Mercury, SpawnPointBlue.position, SpawnPointBlue.rotation);
}
if(SpawnPointRed != null)
{
Instantiate(Mercury, SpawnPointRed.position, SpawnPointRed.rotation);
}
if(SpawnPointOrange != null)
{
Instantiate(Mercury, SpawnPointOrange.position, SpawnPointOrange.rotation);
}
if(SpawnPointYellow != null)
{
Instantiate(Mercury, SpawnPointYellow.position, SpawnPointYellow.rotation);
}
【问题讨论】:
标签: c# unity3d reference spawn destroy