using System.Linq; using UnityEngine; namespace OmiLAXR { /// /// Agents or Groups can also be included in the ‘context’ of a statement as an ‘instructor,’ leading to statements of the form “Brian (actor) learned xAPI from Ben (instructor).” Context can also include a ‘team’ property but it must be a Group. /// [AddComponentMenu("OmiLAXR / Actors / Team")] public class Team : PipelineComponent { public string teamName = "Team"; public string teamEmail = "team@omilaxr.dev"; public Actor[] GetMembers() => _members; private Actor[] _members; private void Start() { UpdateMemberList(); } public void UpdateMemberList() { #if UNITY_2022_3_OR_NEWER _members = FindObjectsByType(FindObjectsSortMode.InstanceID) .Where(actor => Equals(actor.team)).ToArray(); #else _members = FindObjectsOfType() .Where(actor => Equals(actor.team)).ToArray(); #endif } public void AddMember(Actor actor) { actor.team = this; UpdateMemberList(); } public void AddMembers(params Actor[] actors) { foreach (var a in actors) a.team = this; UpdateMemberList(); } } }