Я создал функцию, в которой я oop прошел через некоторые gameObjects и изменил int, если это не 0. Странная вещь, некоторые части перестают работать, когда я добавляю скобки для лучшей читаемости. В настоящее время я использую приведенный ниже код, но хотел бы, чтобы при вызове этой функции это обеспечивало дополнительную читабельность и эффективность.
WetStepCycle(leftFoot, lfHit);
if (wetStepsRemainingLeft != 0) wetStepsRemainingLeft--;
private void WetStepCycle(Transform footTransform, RaycastHit footHit)
{
if (currentActive == wetStepDecals.Length - 1) currentActive = 0;
else
currentActive++;
wetStepDecals[currentActive].transform.position = new Vector3(footTransform.position.x, footHit.point.y, footTransform.position.z);
wetStepDecals[currentActive].transform.eulerAngles = footTransform.transform.eulerAngles;
}
Это работает как шарм, но не очень компактно, я хотел бы вычесть int внутри функции.
private void WetStepCycleTest(Transform footTransform, RaycastHit footHit, int sCounter)
{
if (currentActive == wetStepDecals.Length - 1)
{
currentActive = 0;
}
else
{
currentActive++;
wetStepDecals[currentActive].transform.position = new Vector3(footTransform.position.x, footHit.point.y, footTransform.position.z);
wetStepDecals[currentActive].transform.eulerAngles = footTransform.transform.eulerAngles;
if (sCounter != 0)
{
sCounter--;
Debug.Log("Minus");
}
}
}
По какой-то причине это не работает, и я думаю, что это как-то связано с форматированием. Таким образом, sCounter не вычитается, и по какой-то причине первый элемент массива gameObject не используется. Я думаю, что это связано с выполнением currentActive ++ и sCounter--;, но изменение их на + = 1 и - = 1, похоже, тоже не работает.