コード例 #1
0
ファイル: GameText.cs プロジェクト: avijmarks/3DGameText
    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;
    }