Я играю в игру, похожую на змею, и когда я ем врага, я создаю новый клон префаба. Вместо того, чтобы создавать только один клон после основного префаба, после того как я съел первого врага и у меня есть префаб и один клон, когда я ем второго врага, игра создает клон префаба И клон клона.
Я действительно не понимаю, почему это происходит, это короткий код, и я не могу найти никаких ошибок. Единственная идея, которая у меня есть, заключается в том, что, возможно, этот скрипт работает для каждого клона, а не только для игрока, как и должно быть.
private void createNewPiece()
{
if(playerPieces.Count!=0)///which is the number of clones, not counting the player
clone = Instantiate(player, playerPieces[playerPieces.Count-1].transform.position, Quaternion.identity);
else
clone = Instantiate(player, lastPlayerPosition, Quaternion.identity);
playerPieces.Add(clone);
addedNewPiece = true;
}
private void movePlayerPieces()
{
if (addedNewPiece == false)
{
for (int i = playerPieces.Count - 1; i >= 1; i -= 1)
{
if (playerPieces[i] != null)
playerPieces[i].transform.position = playerPieces[i - 1].transform.position;
else Debug.Log("uhmm" + i);
}
if (playerPieces.Count >= 1 && playerPieces[0] != null)
playerPieces[0].transform.position = lastPlayerPosition;
}
else
{
for (int i = playerPieces.Count - 2; i >= 1; i -= 1)
{
if (playerPieces[i] != null)
playerPieces[i].transform.position = playerPieces[i - 1].transform.position;
else Debug.Log("uhmm" + i);
}
if (playerPieces.Count >= 2 && playerPieces[0] != null)
playerPieces[0].transform.position = lastPlayerPosition;
}
}
Чем больше врагов я ем, тем больше клонов создает следующий съеденный враг, вместо того, чтобы создавать по одному.