更改实例化对象的层数C#

时间:2016-07-14 15:46:47

标签: c# input instantiation layer

我正在使用脚本根据名称为gameObject提供输入。

public KeyCode cavalryCall;
GameObject CohortA;
GameObject CohortB;
GameObject CohortC;
GameObject CohortD;

//List of configurations
void Start () {

    CohortA = GameObject.Find ("Cohort A");
    CohortB = GameObject.Find ("Cohort B");
    CohortC = GameObject.Find ("Cohort C");
    CohortD = GameObject.Find ("Cohort D");

    //A Input
    if (gameObject == CohortA) {     

        cavalryCall = KeyCode.Alpha4;
    }

    //B Input
    if (gameObject == CohortB) {

        cavalryCall = KeyCode.R;
    }

    //C Input
    if (gameObject == CohortC) {

        cavalryCall = KeyCode.F;
    }

    //D Input
    if (gameObject == CohortD) {

        cavalryCall = KeyCode.V;
    }
}

然后我使用该输入为不同的输入启动多个协同程序,其中一个用于实例化另一个gameObject,然后更改该新对象的图层。

KeyInput scriptBeholderKI;

//Script adquisition
void Start () {

    scriptKI = gameObject.GetComponent <KeyInput> ();
}

void Update () {

    //Key inputs
    if (Input.GetKeyDown (scriptKI.cavalryCall)) {

        StopAllCoroutines ();
        StartCoroutine (CavalryCall (0));
    }
}

IEnumerator CavalryCall (float Cavalrycall) {

    Instantiate (CavalryCohort, CavalryCohortSpawn.transform.position, CavalryCohortSpawn.transform.rotation);
    CavalryCohort.layer = CavalryCohortSpawn.layer;
    yield return null;
}

}

问题是所得到的层变得混乱,我有4层:

- 第一层用于“ CavalryCohortSpawn ”这是“ CohortA ”的孩子,当我按下“ Alpha 4 < / strong>“,它在第D层中产生。

- B层为“ CavalryCohortSpawn ”这是“同类B ”的孩子,当我按“ R “,它在第C层中产生。

- C层表示“ CavalryCohortSpawn ”这是“ CohortC ”的孩子,当我按“ F “,它在 B层中产生。

- 图层D 为“ CavalryCohortSpawn ”这是“同类群组”的孩子,当我按“ V “,它在第A层中产生。

我只发布了相关的片段,第一个脚本中有更多的输入变量,第二个脚本中有更多的协程可以完美地工作。 此外,如果有人知道更好的方式来更改图层我会很感激:)

0 个答案:

没有答案