如何在for循环外声明Var?
How to declare Var outside of for loop?
我有一个包含两个 for loops
的 else
块。
在第二个 for 循环中,我试图从头开始创建一组 objectYouCreate
个实例,就好像以前创建了一组实例一样,它已经通过第一个 for 循环成功销毁了.因此,每次运行此代码(在 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
声明发生在单个 for 循环内并且不为空。
我也在尝试将标签用于 Destroy 部分,这样它就不会只关注同一个对象,而是在实例化时关注所有具有给定标签的对象。但是这个新代码使 Unity 崩溃了!如果有人有优化建议或不同的方法,请告诉我。
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
是为 compile-time type-binding 引入的匿名类型,但我们可以将 var
用于设计时已知的原始类型和自定义类型。在运行时,没有像 var
这样的东西,它被替换为引用类型或值类型的实际类型。
参考文献:
我有一个包含两个 for loops
的 else
块。
在第二个 for 循环中,我试图从头开始创建一组 objectYouCreate
个实例,就好像以前创建了一组实例一样,它已经通过第一个 for 循环成功销毁了.因此,每次运行此代码(在 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
声明发生在单个 for 循环内并且不为空。
我也在尝试将标签用于 Destroy 部分,这样它就不会只关注同一个对象,而是在实例化时关注所有具有给定标签的对象。但是这个新代码使 Unity 崩溃了!如果有人有优化建议或不同的方法,请告诉我。
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
是为 compile-time type-binding 引入的匿名类型,但我们可以将 var
用于设计时已知的原始类型和自定义类型。在运行时,没有像 var
这样的东西,它被替换为引用类型或值类型的实际类型。
参考文献: