public void Select() { if (selectedSurface != null) { selectedSurface.Hide(); } if (selectedChair != null) { selectedChair.UnSelectMeshes(); } if (selectedGenerator != null) { selectedGenerator.DeSelected(); } selectedGenerator = null; selectedSurface = null; groundObject = null; selectedChair = null; selectedDeliverer = null; RaycastHit hitInfo; if (Physics.Raycast(new Vector3(transform.position.x, height, transform.position.z), transform.forward, out hitInfo, interactRadius, layers)) { groundObject = hitInfo.collider.gameObject.GetComponent <Ingredient>(); if (!groundObject) { selectedChair = hitInfo.collider.gameObject.GetComponent <Chair>(); if (selectedChair) { selectedChair.SelectMeshes(); } else { selectedWigDispenser = hitInfo.collider.gameObject.GetComponent <WigDispenser>(); if (!selectedWigDispenser) { selectedGenerator = hitInfo.collider.gameObject.GetComponent <ObjectGenerator>(); if (selectedGenerator) { selectedGenerator.Selected(); } else { selectedDeliverer = hitInfo.collider.GetComponentInParent <RecipeDeliverer>(); if (!selectedDeliverer) { selectedSurface = hitInfo.collider.GetComponentInParent <PlaceableSurface>(); if (selectedSurface) { selectedSurface.Show(); } } } } } } } }