//add attractable objects to the list void EnterCollider(Collider collider) { var attractable = collider.GetComponentInParent <AttractableObject>(); if (attractable == null) { return; } //if (canAttractMultipleObjects) //{ if (attractingObjects.Contains(attractable)) { return; } attractingObjects.Add(attractable); //} //else //{ if (target == null) { target = attractable; } //} }
void UpdateAttractingList() { //if (canAttractMultipleObjects) attractingObjects = attractingObjects.Where(x => x != null).ToList(); if (!canAttractMultipleObjects) { float min = float.MaxValue; foreach (var item in attractingObjects) { var d = Vector3.Distance(item.transform.position, transform.position); if (d < min) { target = item; min = d; } } if (min == float.MaxValue) { target = null; } } }