【发布时间】:2016-08-08 03:42:10
【问题描述】:
我对如何设置我的场景来做到这一点有点困惑。我想创建一个我的班级System 的数组。其中包含一个 Vector3 位置,一个对精灵渲染器和游戏对象的引用。我还在我的数组创建中实例化了该位置的游戏对象。
我在游戏世界的一个空游戏对象中设置了这样的数组:
public System[] systemArray;
void Start () {
systemArray = new System[totalSystems];
for (int i = 0; i < totalSystems; i++)
{
systemArray[i].worldPos = new Vector3(Random.Range(min,max),Random.Range(min,max), Random.Range(minZ,maxZ));
Instantiate(systemObject,systemArray[i].worldPos,Quaternion.identity);
}
}
现在我的系统脚本没有附加到游戏对象,它只是一个脚本,用于存储我刚刚创建的实例化游戏对象的数据。代码如下所示:
public class System : MonoBehaviour {
public SpriteRenderer spriteRenderer;
public GameObject gameObject;
public Vector3 worldPos;
}
我的困惑是如何将这一切联系起来。
这里的目标是我希望能够从场景中销毁游戏对象,但我仍然可以从 System 访问它们的 Vector3、GO 和 sprite 渲染器,以便我可以再次重新实例化。
我真的很困惑,所以希望能得到一些帮助,让我知道如何有效地进行设置。
【问题讨论】:
-
有点混乱,你可能需要用你需要什么以及问题出在哪里来重新表述问题。
-
总之,我想创建一堆游戏对象来实例化它们并设置它们的位置,并且还有对精灵渲染器的引用,所以当我从游戏世界中销毁时我不会丢失这些信息,因为我可能想在将来的某个时间再次重新实例化。
-
只是一个正式的说明:不要命名一个类
System。那是一个顶级的 .net 命名空间。像GameSystem这样的东西会更好,而且不容易混淆。 -
@GunnarB。是的,我后来意识到:P 谢谢 :)