示例#1
0
        protected virtual void OnTriggerExit(Collider other)
        {
            var actor = other.GetComponent <ActorBase>();

            if (actor)
            {
                NearbyActors.Remove(actor);
            }
        }
示例#2
0
        private bool CheckInteraction(Interaction interaction)
        {
            if (interaction.Type == InteracteeType.None)
            {
                return(true);
            }
            var actors = NearbyActors.Where(x => !x.IsInteracting && x.InteracteeType == interaction.Type && x.AllowedInteractions.Contains(interaction.Name)).ToList();

            return(actors.Any());
        }
示例#3
0
        private ActorBase SelectActor(Interaction interaction)
        {
            var actors = NearbyActors.Where(x => !x.IsInteracting && x.InteracteeType == interaction.Type && x.AllowedInteractions.Contains(interaction.Name)).ToList();

            if (!actors.Any())
            {
                return(null);
            }
            return(actors.SelectRandomItem());
        }