Esempio n. 1
0
        public void SetDialogue(Character?character, Sprite sprite, string dialogue, CharacterManager characterManager = null)
        {
            m_currentDialogue = dialogue;
            m_speaker.text    = character?.GetName() ?? "";
            m_dialogueComponent.StopAllCoroutines();
            m_dialogueComponent.StartCoroutine(m_typewriteEvent = TypewriteText());

            if (characterManager != null && character != null)
            {
                GameObject characterObject = characterManager.TryGetCharacter(character);

                if (sprite != null)
                {
                    if (characterObject != null)
                    {
                        characterManager.SetSprite(characterObject, sprite);
                    }
                    else
                    {
                        Debug.LogWarning("CNovell: Не пытайтесь изменить спрайт персонажа, которого нет в сцене.");
                    }
                }

                if (characterObject)
                {
                    characterManager.HighlightSpeakingCharacter(character);
                }
            }
        }
Esempio n. 2
0
        private void ScaleCharacter(CharacterTransformer characterTransformer)
        {
            CharacterScaleNode scaleNode = m_currentNode as CharacterScaleNode;
            GameObject         character = m_characterManager.TryGetCharacter(scaleNode.GetCharacter());
            Vector2            scale     = scaleNode.GetScale();

            if (scaleNode.GetIsLerp())
            {
                m_sceneManager.StartCoroutine(characterTransformer.LerpCharacterScale(character, scale, scaleNode.GetLerpTime()));
            }
            else
            {
                characterTransformer.SetCharacterScale(character, scale);
            }

            m_sceneManager.NextNode();
        }