如何在循环之外声明var



我有一个包含两个 for loopselse块。

使用第二个循环,我正在尝试从干净的板岩中创建一组objectYouCreate实例,例如,如果以前制作了一组实例,它已经通过第一个循环成功地破坏了。因此,每次此代码运行(在Update方法中(时,它将在擦拭上一个集合后创建一组全新的实例。

这是我想到的(可能是有缺陷的(逻辑,但是我遇到了这个错误:

错误:"Cannot assign <null> to implicitly typed variable"

我可以在如何在逻辑上和没有错误的情况下最佳重组此代码方面获得帮助。谢谢。

  else{
        var objectYouCreate = null; //gives the error
        for (int i = 0; i < mesh.vertexCount; i++)
        {
            Destroy(objectYouCreate);
        }
        for (int i = 0; i < mesh.vertexCount; i++)
        {
            Vector3 position = mesh.vertices[i];                
            objectYouCreate = Instantiate(CubePrefab, position, transform.rotation);
        }
     }

__

编辑:

通过将标签的用法引入我的代码...我能够更改代码,以便唯一的var声明发生在单个循环中,而不是null。

我还试图将标签用于销毁部分,以便它不仅将相同的对象聚焦,还可以将所有对象聚焦在实例上。但是这个新代码崩溃了统一!如果有人提出优化或其他方法的建议,请告诉我。

    else
    {
        while (GameObject.FindWithTag("CubePFInst") != null) Destroy(GameObject.FindWithTag("CubePFInst"));
        for (int i = 0; i < mesh.vertexCount; i++)
        {
            Vector3 position = mesh.vertices[i];                
            var cubeClone = Instantiate(CubePrefab, position, transform.rotation);
            cubeClone.tag = "CubePFInst";
        }
    }

var是为匿名类型的编译时类型绑定而引入的,但我们可以将var用于在设计时已经知道的原始和自定义类型。在运行时,没有什么比var之类的,它被实际类型替换为参考类型或值类型。

参考:

  • var(c#参考(
  • https://www.itorian.com/2015/04/initialize-var-with-with-null-or-ymenty-in-c.html

相关内容

  • 没有找到相关文章