/// <summary> /// overridden copy constructor /// </summary> /// <param name="node">node to copy</param> /// <param name="position">position to copy to</param> public override void Copy(BaseNode node, Vector2 position) { base.Copy(node, position); CharacterTranslateNode characterMoveNode = node as CharacterTranslateNode; // copy relevant variables, character, translation, lerp etc. m_character = characterMoveNode.m_character; m_xPosition = characterMoveNode.m_xPosition; m_isLerp = characterMoveNode.m_isLerp; m_lerpTime = characterMoveNode.m_lerpTime; }
/// <summary> /// /// </summary> /// <param name="characterTransformer"></param> 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(); }