void FireStrikeMarker() { GameObject mkr = Instantiate(markerPrefab, transform.position, transform.rotation); marker = mkr.GetComponent <StrikeMarker>(); marker.ExpulsionForce = 100; }
private void HandlePositionInput() { if (MouseHasMoved() && !isStriking) { ray = camera.ScreenPointToRay(Input.mousePosition); RaycastHit[] hits = Physics.RaycastAll(ray); if (Array.Exists(hits, hit => hit.collider.gameObject == cueBall)) { hit = Array.Find(hits, hit => hit.collider.gameObject == cueBall); pointToStrike = hit.point; if (!markerInstance) { markerInstance = Instantiate <StrikeMarker>(strikePointMarker); markerInstance.transform.position = pointToStrike; markerInstance.CompleteSetup += HandleForceSetupCompletion; } else { markerInstance.transform.position = pointToStrike; } forceVector = (cueBall.transform.position - markerInstance.transform.position); markerInstance.transform.LookAt(cueBall.transform.position); } else { if (markerInstance != null) { GameObject.Destroy(markerInstance.gameObject); } } } if (Input.GetKeyDown(KeyCode.Mouse0) && markerInstance != null) { controlStage = ControlStage.SetForce; markerInstance.SetPosition(); } }