public void EnterCharacter(Character character, Sprite sprite, float xPosition, float fadeInTime = 0.5f, bool nextNode = false, bool waitForFinish = false, bool isInvert = false) { if (TryGetCharacter(character) != null) { Debug.LogWarning("CNovell: Не пытайтесь ввести два одинаковых символа."); SceneManager sceneManager = SceneManager.GetInstance(); if (sceneManager != null && nextNode) { sceneManager.NextNode(); } return; } GameObject characterObject = Object.Instantiate(m_characterPrefab, m_backgroundPanel); if (isInvert) { m_characterTransformer.SetCharacterScale(characterObject, new Vector2(-1, 1)); } SetSprite(characterObject, sprite); m_characterTransformer.SetCharacterPosition(characterObject, new Vector2(xPosition, 0)); Components.CharacterInfo characterInfo = characterObject.GetComponent <Components.CharacterInfo>(); characterInfo.SetCharacter(character); m_characters.Add(characterObject); m_characterComponent.StartCoroutine(FadeIn(characterObject, fadeInTime, nextNode, waitForFinish)); }
private void TranslateCharacter(CharacterTransformer characterTransformer) { CharacterTranslateNode translateNode = m_currentNode as CharacterTranslateNode; GameObject character = m_characterManager.TryGetCharacter(translateNode.GetCharacter()); Vector2 position = new Vector2(translateNode.GetXPosition(), 0); if (translateNode.GetIsLerp()) { m_sceneManager.StartCoroutine(characterTransformer.LerpCharacterPosition(character, position, translateNode.GetLerpTime())); } else { characterTransformer.SetCharacterPosition(character, position); } m_sceneManager.NextNode(); }