我知道,这可能是一个非常愚蠢的问题。
我有一个很长的代码会重复并使用大量的复制+粘贴,我知道复制粘贴相同的代码是一种非常糟糕的做法,但我想不出缩短它的方法!我正在努力编写更清晰的代码是一个检查向量和其他向量的代码。我通过添加 +1 和 -1 来更改 x,然后更改 y +1 和 -1,最后更改 z+1 和 z-1,对于每一个细微的变化,我都会为略微变化的向量调用相同的函数. 这会创建一个非常丑陋的代码:
void checkAirRadius(Voxel temp, Vector3 fireposition)
{
Vector3 original = fireposition;
if (temp.type != null)
{
if (temp.type.isFire != true && temp.type.burnable == true)
{
fireposition.x -= 1;
Voxel temp2 = env.GetVoxel(fireposition);
if (temp2.type == null)
if (temp2.hasContent != 1)
{
env.VoxelDestroy(original);
env.VoxelPlace(fireposition, firevoxel);
coroutine = WaitAndPrint(1.0f, fireposition, 1);
StartCoroutine(coroutine);
}
fireposition.x += 1;
fireposition.x += 1;
temp2 = env.GetVoxel(fireposition);
if (temp2.type == null)
if (temp2.hasContent != 1)
{
env.VoxelDestroy(original);
env.VoxelPlace(fireposition, firevoxel);
coroutine = WaitAndPrint(1.0f, fireposition, 1);
StartCoroutine(coroutine);
}
fireposition.x -= 1;
fireposition.y += 1;
temp2 = env.GetVoxel(fireposition);
if (temp2.type == null)
if (temp2.hasContent != 1)
{
env.VoxelDestroy(original);
env.VoxelPlace(fireposition, firevoxel);
coroutine = WaitAndPrint(1.0f, fireposition, 0);
StartCoroutine(coroutine);
}
我想知道是否可以创建一个简单的函数,该函数将采用一个向量并调用该块周围的函数,而无需每次手动将 x、y、z 更改为 2 个点。
慕盖茨4494581
相关分类