public static void CreateThumper(Vector2 center, float force) { if (CanAddThumper()) { // Debug.Log(center.x + " | " + center.y); RemoveThumperFromStorage(); Vector3 pos = new Vector3(center.x, 0, center.y); Thumper thumper = Instantiate(t.thumperPrefab, pos, Quaternion.identity); thumper.SetVel(force); } }
void CheckUnderClick() { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, 10000, layerMask)) { var go = hit.collider.gameObject; targetThumper = go.GetComponent <Thumper>(); if (targetThumper == null) { clickPos = new Vector2(hit.point.x, hit.point.z); // clickPos = new Vector2(hit.point.x / (GameManager.Water.gridSize + GameManager.Water.spacing), hit.point.z / (GameManager.Water.gridSize + GameManager.Water.spacing)); // Debug.Log("Click Pos: " + hit.point); } } }
void UpdateSelectedThumper() { Thumper oldThumper = selectedThumper; thumpers = thumpers.Where(thumper => thumper != null).ToList(); if (thumpers.Count == 0) { if (selectedThumper != null) { selectedThumper.Deselect(); selectedThumper = null; } return; } if (thumpers.Count == 1 && selectedThumper == null) { if (selectedThumper != null && selectedThumper != thumpers[0]) { selectedThumper.Deselect(); } selectedThumper = thumpers[0]; selectedThumper.Select(); return; } float closetDist = 10000; Thumper closestThump = null; for (int i = 0; i < thumpers.Count; i++) { var thump = thumpers[i]; var dist = Vector3.Distance(transform.position, thump.transform.position); if (dist < closetDist) { closetDist = dist; closestThump = thump; } } if (selectedThumper != closestThump && selectedThumper != null) { selectedThumper.Deselect(); } selectedThumper = closestThump; selectedThumper.Select(); }