/** * Starts a dialog * @param List<string> dialog An list of sentences to display * @param callback onDialogCloseCallback (optionnal) A callback function once the last sentence has been skiped * @param bool isChained (optionnal) True if called inside a process involving player's control (like a cinematic) */ public void StartDialog(List <string> dialog, onDialogClose onDialogCloseCallback = null, bool isChained = false) { onDialogClose onDialogClose = null; bool hasNpcMovementManager = GetComponentInParent <NPCMovementManager>() != null; DialogManager.isReading = true; if (hasNpcMovementManager) { GetComponentInParent <NPCMovementManager>().InterruptMoving(); } onDialogClose = delegate() { if (!isChained) { playerController.UnrestrainPlayer(); playerController.Unimmobilize(); } if (hasNpcMovementManager) { transform.parent.GetComponent <NPCMovementManager>().StartMovingRandomly(); } DialogManager.isReading = false; if (onDialogCloseCallback != null) { onDialogCloseCallback(); } }; if (!isChained) { playerController.RestrainPlayer(); playerController.Immobilize(); } dialogManager.OpenDialog(dialog, onDialogClose); }
public void OpenDialog(List <string> text, onDialogClose dialogCloseCallback = null) { onDialogCloseCallback = dialogCloseCallback; texts = text; _OpenDialog(); }
public void OpenDialog(string text, onDialogClose dialogCloseCallback = null) { onDialogCloseCallback = dialogCloseCallback; texts.Add(text); _OpenDialog(); }