Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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));
     }
 }
Exemple #7
0
 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>());
            }
Exemple #9
0
 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();
     }
 }
Exemple #10
0
 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);
     }
 }
Exemple #11
0
 protected virtual void Awake()
 {
     barkHistory     = new BarkHistory(barkOrder);
     sequencer       = null;
     barkGroupMember = GetBarker().GetComponent <BarkGroupMember>();
 }