using System.Collections; using UnityEngine; using UnityEngine.UI; public class FishDebugger : MonoBehaviour { public static float ForceMod = 1f; [SerializeField] private InputField idField; [SerializeField] private InputField forceModField; [SerializeField] private InputField weightField; [SerializeField] private GameObject _Canvas; private void Start() { _Canvas.SetActive(value: false); ForceMod = 1f; } private void Update() { if (GameManager.Instance.isDevModeAllowed && Input.GetKey(KeyCode.LeftShift) && Input.GetKeyDown(KeyCode.P)) { _Canvas.SetActive(!_Canvas.activeSelf); } } public void Generate() { Vector3 position = FScriptsHandler.Instance.m_PlayerMain.currentRod.currentLure.transform.position; ForceMod = float.Parse(forceModField.text); StartCoroutine(GenerateOneFish(position, int.Parse(idField.text))); } public IEnumerator GenerateOneFish(Vector3 startPos, int id) { yield return null; GameManager.GameFish gameFish = GameManager.Instance.gameFish[id]; float num = float.Parse(weightField.text); FLure currentLure = FScriptsHandler.Instance.m_PlayerMain.currentRod.currentLure; FFish component = Object.Instantiate(GameManager.Instance.gameFish[id].GetFishModel(num), FScriptsHandler.Instance.transform).GetComponent(); component.fFishSystem = Object.FindObjectOfType(); component.fishWeight = num; component.fishSpecies = gameFish.speciesName; component.transform.localScale = GameManager.Instance.gameFish[id].GetFishScale(num); component.transform.position = startPos; component.currentFeedingZone = FindNearestFeedingZone(startPos); component.currentSearchLure = currentLure; component.EnableFish(); } private FishFeedingZone FindNearestFeedingZone(Vector3 pos) { float num = float.PositiveInfinity; FishFeedingZone result = null; FishFeedingZone[] array = Object.FindObjectsOfType(); foreach (FishFeedingZone fishFeedingZone in array) { float num2 = Vector3.Distance(fishFeedingZone.transform.position, pos); if (num2 < num) { result = fishFeedingZone; num = num2; } } return result; } }