private void SetParents() { //parentObjects.Clear(); foreach (AttachmentTriggerController trigger in triggers) { AttachmentPointController attachmentPoint = trigger.GetOverlappingAttachmentPoint(); if (attachmentPoint) { InteractiveObjectController newParent = attachmentPoint.GetOwningObject(); if (newParent && (newParent.grabbed || newParent.attached) && !parentObjects.Contains(newParent)) { newParent.AddObjects(this); newParent.AddMass(mass); parentObjects.Add(newParent); //Debug.Log("Object: " + this.name + " adding object: " + attachmentPoint.GetOwningObject().name + " as a parent object."); //Debug.Log("Parent objects count: " + parentObjects.Count); } } } if (attachedObjects.Count > 0) { foreach (InteractiveObjectController attached in attachedObjects) { attached.SetParents(); } } //SayParents(); }
// setters public void AddMass(float massToAdd) { mass += massToAdd; if (GetComponent <Rigidbody>()) { GetComponent <Rigidbody>().mass = mass; } CalculateMovementFactors(); if (parentObject) { parentObject.AddMass(massToAdd); } }