/////////////////////////// MOUSE INPUT ////////////////////////////// private void MouseClickInput() { if (Input.GetButtonDown ("Fire1")) // Left Click down first frame { GameObject clickedObject = RaycastFromMouse(); // Raycast from Camera to Scene and return GameObject if(!clickedObject) return; Vector3 vector = clickedObject.transform.position; if(clickedObject.CompareTag("SnapTarget") || clickedObject.layer == 8) { //Debug.Log("CameraRaycaster.MouseClickInput -> Clicked on 'SnapTarget' " + clickedObject.name + "."); if(selectedworker != null) { selectedworker.SetSelected(false); selectedworker = null; } } else if(clickedObject.CompareTag("Worker")) { if(mouseOverWorker != null) mouseOverWorker.MouseClick(); if(selectedworker != null && selectedworker != mouseOverWorker) { selectedworker.SetSelected(false); selectedworker = null; } selectedworker = mouseOverWorker; if(selectedworker != null) selectedworker.SetSelected(true); } else { //Debug.Log("CameraRaycaster -> Clicked on " + clickedObject.name + ", has no effect."); if(selectedworker != null) { selectedworker.SetSelected(false); selectedworker = null; } } } else if(Input.GetButton ("Fire1")) // Left Click down continuous { if(dragObject == null) BeginMouseDrag(); else MouseDrag(); } else // Left Click is not down { if(dragObject != null) MouseDrop(); } }