public void ChangeMessage(TextNode node) { if (node.GetComponentsInChildren <GameTextCharacter>().Length > 0) { GameTextCharacter[] previousCharacters = node.GetComponentsInChildren <GameTextCharacter>(); for (int i = 0; i < previousCharacters.Length; i++) { Destroy(previousCharacters[i].gameObject); } ButtonPad previousPad = node.GetComponentInChildren <ButtonPad>(); if (previousPad != null) { Destroy(previousPad.gameObject); } } char[] messageArray = node.Message.ToCharArray(); Vector3[] characterLocalPositions = GetCharacterPositions(node.transform, node.TextSize, messageArray); GameTextCharacter[] prefabArray = new GameTextCharacter[messageArray.Length]; for (int i = 0; i < messageArray.Length; i++) { GameTextCharacter instance = Instantiate(characters[messageArray[i]], node.transform); instance.transform.localPosition = characterLocalPositions[i]; instance.transform.Rotate(0, 90, 90); prefabArray[i] = instance; } node.PrefabArray = prefabArray; }