int GetNumberOfGrabbablesWithType(GrabbableObjectType type) { List <CircuitPiece> grabbablesInThisGrid = GetChildrenWithComponent <CircuitPiece>(); int count = 0; foreach (CircuitPiece obj in grabbablesInThisGrid) { if (obj.type == type) { count++; } } return(count); }
private void CheckClosestObject() { Vector3 currentPos = _transform.position; GrabbableObjectType bestDistanceGrabbable = null; float calculatedDistance; float bestDistance = float.PositiveInfinity; for (int i = 0; i < _sceneObjects.Count; i++) { if (_sceneObjects[i].Type == EGrabbableObjects.None) { continue; } calculatedDistance = Vector3.Distance(_sceneObjects[i].SceneGO.transform.position, currentPos); if (calculatedDistance < _settings.CharacterSettings.MaxGrabDistance && calculatedDistance < bestDistance) { bestDistance = calculatedDistance; bestDistanceGrabbable = _sceneObjects[i]; } } ClosestGrabbable = bestDistanceGrabbable; }