更改实例化对象的层C#

更改实例化对象的层C#,c#,input,instantiation,layer,C#,Input,Instantiation,Layer,我正在使用脚本根据游戏对象的名称为其提供输入 public KeyCode cavalryCall; GameObject CohortA; GameObject CohortB; GameObject CohortC; GameObject CohortD; //List of configurations void Start () { CohortA = GameObject.Find ("Cohort A"); CohortB = GameObject.Find ("

我正在使用脚本根据游戏对象的名称为其提供输入

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;
    }
}
然后,我使用该输入为不同的输入启动几个协同程序,其中一个插入另一个游戏对象,然后更改新对象的层

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;
}
KeyInputScriptBeholderki;
//脚本请求
无效开始(){
scriptKI=gameObject.GetComponent();
}
无效更新(){
//关键投入
if(Input.GetKeyDown(scriptKI.cavalryCall)){
stopallcorroutines();
开始例行程序(骑兵呼叫(0));
}
}
IEnumerator CavalryCall(浮动CavalryCall){
实例化(CavalryCohortSpawn.transform.position,CavalryCohortSpawn.transform.rotation);
CavalryCohortSpawn.layer=CavalryCohortSpawn.layer;
收益返回空;
}
}

问题是生成的层失控,我有4层:

-A层对于“骑兵联队繁殖”,它是“联队”的子代,当我按下“Alpha 4”时,它在D层中繁殖

-B层对于“骑兵联队繁殖”,它是“联队B”的子代,当我按下“R”时,它在C层中繁殖

-C层对于“骑兵联队繁殖”,它是“联队C”的子代,当我按下“F”时,它在B层中繁殖

-D层对于“骑兵联队繁殖”,它是“联队”的子代,当我按下“V”时,它在A层中繁殖

我只发布了相关的片段,第一个脚本中有更多的输入变量,第二个脚本中有更多的协同程序,它们工作得非常好。
另外,如果有人知道一种更好的改变图层的方法,我将不胜感激:)

你所说的“乱七八糟”是什么意思?预期的输出是什么?您得到了什么?我对预期的结果和预期的行为有点不清楚。结果是实例化的游戏对象的最后一层不是它应该是的。我想问题是我使用了错误的.layer,或者它没有达到我认为的效果。我在这里试图做的是:“cavalrycourt.layer=CavalryCohortSpawn.layer;”使实例化对象获得与生成它的spawn对象相同的层。你说的“失控”是什么意思?预期的输出是什么?您得到了什么?我对预期的结果和预期的行为有点不清楚。结果是实例化的游戏对象的最后一层不是它应该是的。我想问题是我使用了错误的.layer,或者它没有达到我认为的效果。我在这里试图做的是:“cavalrycourt.layer=CavalryCohortSpawn.layer;”使实例化对象获得与它产生的spawn对象相同的层