public virtual void Start() { if (trigger == DialogueSystemTriggerEvent.OnCollisionEnter || trigger == DialogueSystemTriggerEvent.OnCollisionExit || trigger == DialogueSystemTriggerEvent.OnTriggerEnter || trigger == DialogueSystemTriggerEvent.OnTriggerExit) { bool found = false; if (GetComponent <Collider>() != null) { found = true; } #if USE_PHYSICS2D || !UNITY_2018_1_OR_NEWER if (!found && GetComponent <Collider2D>() != null) { found = true; } #endif if (!found && DialogueDebug.logWarnings) { Debug.LogWarning("Dialogue System: Dialogue System Trigger is set to a mode that requires a collider, but it has no collider component. If your project is 2D, did you enable 2D support? (Tools > Pixel Crushers > Dialogue System > Welcome Window)", this); } } else if (trigger == DialogueSystemTriggerEvent.OnStart) { // Wait until end of frame to allow all other components to finish their Start() methods: StartCoroutine(StartAtEndOfFrame()); } barkGroupMember = GetBarker(barkConversation).GetComponent <BarkGroupMember>(); if (cacheBarkLines && barkSource == BarkSource.Conversation && !string.IsNullOrEmpty(barkConversation)) { PopulateCache(GetBarker(barkConversation), barkTarget); } }
public virtual void Start() { if (trigger == DialogueSystemTriggerEvent.OnCollisionEnter || trigger == DialogueSystemTriggerEvent.OnCollisionExit || trigger == DialogueSystemTriggerEvent.OnTriggerEnter || trigger == DialogueSystemTriggerEvent.OnTriggerExit) { bool found = false; if (GetComponent <Collider>() != null) { found = true; } #if USE_PHYSICS2D || !UNITY_2018_1_OR_NEWER if (!found && GetComponent <Collider2D>() != null) { found = true; } #endif if (!found && DialogueDebug.logWarnings) { Debug.LogWarning("Dialogue System: Dialogue System Trigger is set to a mode that requires a collider, but it has no collider component.", this); } } else if (trigger == DialogueSystemTriggerEvent.OnStart) { // Wait until end of frame to allow all other components to finish their Start() methods: StartCoroutine(StartAtEndOfFrame()); } barkGroupMember = GetBarker(barkConversation).GetComponent <BarkGroupMember>(); }
private float GetDelayTime(BarkGroupMember member, float delayTime) { if (delayTime >= 0) { return(delayTime); } return((member == null) ? 0 : Random.Range(member.minDelayBetweenQueuedBarks, member.maxDelayBetweenQueuedBarks)); }
public BarkRequest(string barkText, BarkGroupMember member, Transform listener, string sequence, float delayTime = -1) { this.member = member; this.listener = listener; this.conversation = null; this.barkHistory = null; this.barkText = barkText; this.sequence = sequence; this.barkUI = GetBarkUI(member); this.delayTime = GetDelayTime(member, delayTime); }
/// <summary> /// Barks with group awareness. /// </summary> /// <param name="barkText">Text to bark.</param> /// <param name="member">Barker.</param> /// <param name="listener">Bark target.</param> /// <param name="sequence">Optional sequence to play during the bark.</param> /// <param name="delayTime">Omit/zero to use the member's random delay settings; if nonzero, use this delay time.</param> public void GroupBarkString(string barkText, BarkGroupMember member, Transform listener, string sequence, float delayTime = 0) { if (member == null || !member.queueBarks) { DialogueManager.BarkString(barkText, (member != null) ? member.transform : null, listener, sequence); } else { Enqueue(new BarkRequest(barkText, member, listener, sequence, delayTime)); } }
/// <summary> /// Barks with group awareness. /// </summary> /// <param name="conversation">Conversation to bark from.</param> /// <param name="member">Barker.</param> /// <param name="listener">Bark target.</param> /// <param name="barkHistory">Bark history.</param> /// <param name="delayTime">Omit/zero to use the member's random delay settings; if nonzero, use this delay time.</param> public void GroupBark(string conversation, BarkGroupMember member, Transform listener, BarkHistory barkHistory, float delayTime = 0) { if (member == null || !member.queueBarks) { DialogueManager.Bark(conversation, (member != null) ? member.transform : null, listener, barkHistory); } else { Enqueue(new BarkRequest(conversation, member, listener, barkHistory, delayTime)); } }
public void AddToGroup(string groupId, BarkGroupMember member) { if (string.IsNullOrEmpty(groupId) || member == null) { return; } if (!groups.ContainsKey(groupId)) { groups.Add(groupId, new HashSet <BarkGroupMember>()); } groups[groupId].Add(member); }
private AbstractBarkUI GetBarkUI(BarkGroupMember member) { if (member == null) { return(null); } var dialogueActor = member.GetComponentInChildren <DialogueActor>(); if (dialogueActor != null && dialogueActor.barkUISettings.barkUI != null) { return(dialogueActor.barkUISettings.barkUI); } return(member.GetComponentInChildren <AbstractBarkUI>()); }
public void MutexBark(string groupId, BarkGroupMember member) { if (string.IsNullOrEmpty(groupId) || member == null) { return; } if (!groups.ContainsKey(groupId)) { return; } foreach (var other in groups[groupId]) { if (other == member) { continue; } other.CancelBark(); } }
public void RemoveFromGroup(string groupId, BarkGroupMember member) { if (string.IsNullOrEmpty(groupId) || member == null) { return; } if (!groups.ContainsKey(groupId)) { return; } if (!groups[groupId].Contains(member)) { return; } groups[groupId].Remove(member); if (groups[groupId].Count == 0) { groups.Remove(groupId); } }
protected virtual void Awake() { barkHistory = new BarkHistory(barkOrder); sequencer = null; barkGroupMember = GetBarker().GetComponent <BarkGroupMember>(); }