void HandleSelection() { if (!SelectionEnabled || !Input.GetMouseButtonUp(0)) { return; } if (selectedPeg && selectedPeg != highlightedPeg) { if (highlightedPeg) { bool added = highlightedPeg.TryAddingDisk(selectedPeg.SelectedDisk); if (!added) { return; } Moves++; selectedPeg.Clear(); } selectedPeg.Deselect(); selectedPeg = null; return; } if (highlightedPeg && selectedPeg != highlightedPeg) { selectedPeg = highlightedPeg; selectedPeg.Select(); return; } if (highlightedPeg && highlightedPeg == selectedPeg) { selectedPeg.Deselect(); selectedPeg = null; } }
void HighlightPeg() { if (highlightedPeg) { highlightedPeg.Highlight(false); highlightedPeg = null; placeholder.Visible = false; } if (!SelectionEnabled || !Physics.Raycast(MouseToRay(), out RaycastHit hit)) { return; } Peg peg = hit.transform.GetComponent <Peg>(); if (!peg || (peg.DiskCount < 1 && !selectedPeg)) { return; } highlightedPeg = peg; highlightedPeg.Highlight(); if ( !selectedPeg || highlightedPeg == selectedPeg || !highlightedPeg.CanPlace(selectedPeg.SelectedDisk) ) { return; } placeholder.Size = selectedPeg.SelectedDisk.Size; placeholder.Visible = true; highlightedPeg.Placeholder(placeholder.transform); }