1 回答
TA贡献1850条经验 获得超11个赞
遵循 DRY(不要重复自己)原则,每次看到被重用的代码时,您都可以而且应该重构它。
至于你的代码,我要做的第一件事是创建一个函数来接收新的fireposition. 比如说:
void ChangeFirePositionAndRecalculate (int newValue) {
fireposition.z += newValue;
temp = VoxelPlayEnvironment.instance.GetVoxel(fireposition);
checkAirRadius(temp, fireposition);
}
而不是调用:
fireposition.z -= 2;
temp = VoxelPlayEnvironment.instance.GetVoxel(fireposition);
checkAirRadius(temp, fireposition);
您可以致电:
ChangeFirePositionAndRecalculate (-2);
ChangeFirePositionAndRecalculate (1);
但是,话又说回来,干。例如,您可以创建一个包含所有这些位置的数组:
public int [] positions;
这甚至允许您fireposition直接从编辑器更改。考虑到这一点,您现在可以运行:
for (int i = 0; i < position.lenght; i++) {
ChangeFirePositionAndRecalculate (positions [i]);
}
你可以计算其余的。这只是我会做的一些事情。
[编辑] 我忘了提到在创建方法时,使用 CamelCase,我注意到您的某些方法使用但checkAirRadius没有使用。
- 1 回答
- 0 关注
- 166 浏览
添加回答
举报