更改实例化对象的层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对象相同的层