private void CalculaNextPosition(SnakePart part) { Vector2 currentDirection = part.GetCurrentDirection(); //dirección actual Vector2 currentPosition = part.GetPrevPosition(); //posición desde la que calculamos la siguiente float desplazacimentoTotal = part.getWidth(); //cuanto desplazamiento entre prev y next ha de existir (es el ancho del sprite de la serpiente) Vector2 nextPosition = new Vector2(currentPosition.x + (desplazacimentoTotal * currentDirection.x), currentPosition.y + (desplazacimentoTotal * currentDirection.y)); //asignamos la anterior dirección como siguiente dirección de la siguiente parte si tiene siguiente parte if (part.GetNextPart()) { part.GetNextPart().GetComponent <SnakePart>().AddDirection(part.GetCurrentDirection()); } //asignamos la nueva siguiente posición calculada part.SetNextPosition(nextPosition); }