public void FishingEnd(bool success) { foreach (Fish f in Fishes) { f.FishingEnd(); } areaCollider.enabled = true; FishingControls?.Disable(); FishingControls?.Dispose(); FishingControls = null; Debug.Log("Stopped fishing."); if (_fishingBehaviourScript == null) { return; } if (success) { ActiveFish.ForceStopAI(); Debug.Log("Fish Caught!"); } else { OnFail?.Invoke(); Debug.Log("Fish Got Away..."); } Destroy(_fishingBehaviourScript.gameObject); }
private void OnMouseDown() { Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); mousePos.z = 0; float distanceToFish = Vector3.Distance(fishStock.transform.position, mousePos); if (activeFishes.Count > 0 && distanceToFish <= 0.5f) { activeFishes[0].StartDrag(); currentlyDraggedFish = activeFishes[0]; activeFishes.RemoveAt(0); } foreach (var activeCrew in activeCrews) { float distance = Vector3.Distance(activeCrew.transform.position, mousePos); if (activeCrew.gameObject.activeInHierarchy && distance <= 0.1f) { gameDirector.OnCrewClick(activeCrew); } } }
public void AddFish() { var fish = Instantiate(usableFishPrefab, fishStock); float fishRandomPos = 0.25f; fish.transform.localPosition = new Vector3(UnityEngine.Random.Range(-fishRandomPos, fishRandomPos), UnityEngine.Random.Range(-fishRandomPos, fishRandomPos), 0); ActiveFish fishComponent = fish.GetComponent <ActiveFish>(); fishComponent.OnReset = OnFishReset; activeFishes.Add(fishComponent); }
private void OnFishReset(ActiveFish activeFish) { activeFishes.Add(activeFish); currentlyDraggedFish = null; }