private void DropComponent() { if (currentObject == null) //just drop it on the floor { holdingComponent.transform.SetParent(null); holdingComponent.gameObject.SetActive(true); holdingComponent.SetAffectedByGravity(true); } else if (currentObject.AddPickableComponent(holdingComponent)) { } holdingComponent = null; }
private void PickUpComponent() { if (currentObject == null) { List <PickAbleObject> componentsInScene = new List <PickAbleObject>(); componentsInScene.AddRange(FindObjectsOfType <PickAbleObject>()); componentsInScene.RemoveAll(i => Vector3.Distance(i.transform.position, transform.position) > 3f); PickAbleObject componentToPick = null; if (componentsInScene.Count > 0) { componentToPick = componentsInScene.OrderBy(i => Vector3.Distance(i.transform.position, transform.position)).First(); } if (componentToPick != null && componentToPick.pickable) { holdingComponent = componentToPick; holdingComponent.transform.SetParent(transform); holdingComponent.gameObject.SetActive(true); holdingComponent.transform.position = holdingTransform.position; holdingComponent.SetAffectedByGravity(false); } else { componentToPick = null; } } else { holdingComponent = currentObject.GetRepairComponent(); if (holdingComponent != null) { holdingComponent.transform.SetParent(transform); holdingComponent.gameObject.SetActive(true); holdingComponent.transform.position = holdingTransform.position; holdingComponent.SetAffectedByGravity(false); } } //component.gameObject.GetComponent<Renderer>().enabled = false; }