有一个函数最多接受 4 个参数。同时,在不同的情况下,我会调用它并只传递 3、2 或 1 个参数。Unity 会抛出一个错误,如果在函数中设置了参数,则必须传递它。有没有办法将参数指定为可选,或者使用另一种解决方案(哪个)更好?
例子:
void example(Texture texture1, Texture texture2, Texture texture3, Texture texture4) {
renderer1.material.mainTexture = texture1;
if (texture2 != null) {
renderer2.material.mainTexture = texture2;
}
if (texture3 != null) {
renderer3.material.mainTexture = texture3;
}
if (texture4 != null) {
renderer4.material.mainTexture = texture4;
}
}
public void callExample(){
example(texture1, texture2);
};
参数可以使用默认值:
private void example(Texture texture1, Texture texture2 = null, Texture texture3 = null, Texture texture4 = null)
此外,您可以使用params 关键字:
private void example(params Texture[] textures)
现在您可以example
使用任意数量的 Texture 类型的参数调用该方法。所有元素将被放置在一个数组中textures
就我而言,据我了解,我需要为参数设置默认值,如下所示:
由于参数个数是固定的,所以使用默认值而不是params——第一个除外。
还要检查第一个是否为null。
可以使用局部函数来简化代码。
您的渲染器是在函数范围之外定义的,因此它们必须是成员变量,因此以“_”开头命名它们,例如:_renderer1。
您还可以在渲染器中使用扩展方法,如下所示: