Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当我点击一个按钮时,另一个按钮被激活(BUG)c_C#_Unity3d - Fatal编程技术网

C# 当我点击一个按钮时,另一个按钮被激活(BUG)c

C# 当我点击一个按钮时,另一个按钮被激活(BUG)c,c#,unity3d,C#,Unity3d,我有两个按钮。一个激活一个创建立方体的方法,一个创建一个紫色块,在视频中查看所有内容。当我点击一个按钮时,它会激活另一个按钮。有人能帮忙吗 下面是一些代码: 按钮1激活此方法: public void AddObsticale(int unit) { Vector3 unitPos = u.Units[unit].transform.position; arrow.transform.position =new Vector3(unitPos.x + 4.5f, unitPos.

我有两个按钮。一个激活一个创建立方体的方法,一个创建一个紫色块,在视频中查看所有内容。当我点击一个按钮时,它会激活另一个按钮。有人能帮忙吗

下面是一些代码:

按钮1激活此方法:

public void AddObsticale(int unit)
{
    Vector3 unitPos = u.Units[unit].transform.position;
    arrow.transform.position =new Vector3(unitPos.x + 4.5f, unitPos.y + 1, unitPos.z - 5f);
    arrow.SetActive(true);
    StartCoroutine(ArrowChoose());
}

IEnumerator ArrowChoose()
{
    yield return new WaitUntil(() => Input.GetKeyDown(KeyCode.Return));
    GameObject g = Instantiate(obsticlePrefab, new Vector3(0, 0.5f, arrow.transform.position.z), Quaternion.identity, gameObject.transform);
    arrow.SetActive(false);
}
public void AddUnit()
{
    count++;
    GameObject g = Instantiate(unitPrefab, new Vector3(0, 0, (count - 1) * unitSize.z), Quaternion.identity, unitsParent.transform);
    units.Add(g);
    unitText.text = "Units: " + count;
}
不应激活的按钮2激活此方法:

public void AddObsticale(int unit)
{
    Vector3 unitPos = u.Units[unit].transform.position;
    arrow.transform.position =new Vector3(unitPos.x + 4.5f, unitPos.y + 1, unitPos.z - 5f);
    arrow.SetActive(true);
    StartCoroutine(ArrowChoose());
}

IEnumerator ArrowChoose()
{
    yield return new WaitUntil(() => Input.GetKeyDown(KeyCode.Return));
    GameObject g = Instantiate(obsticlePrefab, new Vector3(0, 0.5f, arrow.transform.position.z), Quaternion.identity, gameObject.transform);
    arrow.SetActive(false);
}
public void AddUnit()
{
    count++;
    GameObject g = Instantiate(unitPrefab, new Vector3(0, 0, (count - 1) * unitSize.z), Quaternion.identity, unitsParent.transform);
    units.Add(g);
    unitText.text = "Units: " + count;
}
我解决了这个问题:

问题出在这方面:

yield return new WaitUntil(() => Input.GetKeyDown(KeyCode.Return));

由于统一性,返回键自动激活按钮,只要我将键更改为另一个键,比如KeyCode.V,问题就消失了

调用对象/事件或委托管道可能有问题?如果你能分享一些代码,这会有帮助。你不应该把它作为视频发布。例如,我在atm机上工作,我不能看视频,因此我不能帮助你。另外,有些人不会为你的问题烦恼,因为他们不想为此花费时间。所以一定要把你的代码贴出来我贴了一些代码