同一个类

时间:2016-03-20 12:10:42

标签: c# arrays class object

我在团结中制作塔防游戏。用c#写。我有gameObject Enemy使用waypoints数组沿地图移动。我产生了几次敌人对象,它们都使用在单独的类中声明的相同的waypoints数组移动。我想如果我在敌人类中声明新的私有waypoints1数组。敌人开始使用waypoints1数组。他们做到了。但现在他们都使用相同的waypoints1数组,因为它属于敌人类,而且它们都来自同一个类。那么如何为敌人类的每个成员声明Unique数组呢?

public class ONE : MonoBehaviour {
public GameObject[] waypoints;

...
}

public class TWO : MonoBehaviour {
public GameObject[] waypoints;

...

void Start () {

        for (int i = 1; i < waypoints.Length; i++)
{
waypoints[i].transform.position = new Vector3(waypoints[i].transform.position.x + Random.Range(-3, 3), waypoints[i].transform.position.y + Random.Range(-3, 3), 0);
}
}

Class One多次生成第二类对象,我希望每个class两个对象都有唯一的waypoints数组。

我试过这个

public class ONE : MonoBehaviour {
public GameObject[] waypoints;

...
}

public class TWO : MonoBehaviour {
public GameObject[] waypoints;
private GameObject[] waypoints1;
...

void Start () {
waypoints1=waypoints;
        for (int i = 1; i < waypoints.Length; i++)
{
waypoints1[i].transform.position = new Vector3(waypoints[i].transform.position.x + Random.Range(-3, 3), waypoints[i].transform.position.y + Random.Range(-3, 3), 0);
}
}

但它没有帮助。第2类的每个实例都具有相同的Waypoints1数组。每次我创建一个新对象时都会更新。

1 个答案:

答案 0 :(得分:0)

由于你只有一定数量的敌人可以去的路线,你为什么不创建一个不同路线的routes-profile-array并在创建你的对象时调用它的随机成员呢?

您可以添加一个方法,以确保不会因为总路径数量较少而导致许多对象获得相同的随机数。 (记得最后一次叫做routes-profil成员或类似的东西)。