我有一个包含两个 for loops
的 else
块。
使用第二个循环,我正在尝试从干净的板岩中创建一组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