public virtual void AddInfluenceableObject(InfluenceableObject obj) { if (!influenceableObjects.Contains(obj)) { influenceableObjects.Add(obj); } }
private void OnTriggerExit(Collider other) { if (InfluenceableObjectsByCollider.ContainsKey(other)) { InfluenceableObject obj = InfluenceableObjectsByCollider[other]; RemoveInfluenceableObject(obj); } }
private void OnTriggerEnter(Collider other) { if (InfluenceableObjectsByCollider.ContainsKey(other) && (LayersOfInfluence.Count == 0 || LayersOfInfluence.ContainsAny(InfluenceableObjectsByCollider[other].InfluenceableLayers))) { InfluenceableObject obj = InfluenceableObjectsByCollider[other]; AddInfluenceableObject(obj); } }
protected abstract void Influence(InfluenceableObject obj);
public virtual void RemoveInfluenceableObject(InfluenceableObject obj) { influenceableObjects.Remove(obj); }