コード例 #1
0
        public void Initialize()
        {
            TmpText = parent.GetComponentInChildren <TMP_Text>();
            TmpText.SetText(labelText);

            TmpInputField = parent.GetComponentInChildren <TMP_InputField>();
        }
コード例 #2
0
        private void ApplyModifiers()
        {
            if (charactersData == null)
            {
                return;
            }

            tmpText.ForceMeshUpdate(true);
            for (int i = 0; i < charactersData.Length; i++)
            {
                ModifyCharacter(i, cachedMeshInfo);
            }

            if (updateGeometry)
            {
                for (int i = 0; i < textInfo.meshInfo.Length; i++)
                {
                    textInfo.meshInfo[i].mesh.vertices = textInfo.meshInfo[i].vertices;
                    TmpText.UpdateGeometry(textInfo.meshInfo[i].mesh, i);
                }
            }

            if (updateVertexData)
            {
                TmpText.UpdateVertexData(TMP_VertexDataUpdateFlags.Colors32);
            }
        }
コード例 #3
0
        public void Initialize(List <string> options)
        {
            TmpText = parent.GetComponentInChildren <TMP_Text>();
            TmpText.SetText(labelText);

            TmpDropdown = parent.GetComponentInChildren <TMP_Dropdown>();
            TmpDropdown.options.Clear();
            TmpDropdown.AddOptions(options);
            TmpDropdown.RefreshShownValue();
        }
コード例 #4
0
        private void UpdateIfDirty()
        {
            if (!isDirty)
            {
                return;
            }

            if (!gameObject.activeInHierarchy || !gameObject.activeSelf)
            {
                return;
            }

            TextJuicerVertexModifier[] currentComponents = GetComponents <TextJuicerVertexModifier>();
            if (vertexModifiers == null || vertexModifiers != currentComponents)
            {
                vertexModifiers = currentComponents;

                for (int i = 0; i < vertexModifiers.Length; i++)
                {
                    TextJuicerVertexModifier vertexModifier = vertexModifiers[i];

                    if (!updateGeometry && vertexModifier.ModifyGeometry)
                    {
                        updateGeometry = true;
                    }

                    if (!updateVertexData && vertexModifier.ModifyVertex)
                    {
                        updateVertexData = true;
                    }
                }
            }

            if (string.IsNullOrEmpty(cachedText) || !cachedText.Equals(TmpText.text))
            {
                TmpText.ForceMeshUpdate();
                textInfo       = TmpText.textInfo;
                cachedMeshInfo = textInfo.CopyMeshInfoVertexData();

                List <CharacterData> newCharacterDataList = new List <CharacterData>();
                int indexCount = 0;
                for (int i = 0; i < textInfo.characterCount; i++)
                {
                    if (!textInfo.characterInfo[i].isVisible)
                    {
                        continue;
                    }

                    CharacterData characterData = new CharacterData(indexCount,
                                                                    delay * indexCount,
                                                                    duration,
                                                                    playForever,
                                                                    textInfo.characterInfo[i]
                                                                    .materialReferenceIndex,
                                                                    textInfo.characterInfo[i].vertexIndex);
                    newCharacterDataList.Add(characterData);
                    indexCount += 1;
                }

                charactersData         = newCharacterDataList.ToArray();
                realTotalAnimationTime = duration +
                                         charactersData.Length * delay;

                cachedText = TmpText.text;
            }

            isDirty = false;
        }