using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using DG.Tweening; using TMPro; using System.Threading.Tasks; public class roomcontroller : MonoBehaviour { [Header("id")] public int RoomId; public Text RoomName; [Header("精灵的预制体")] public GameObject fishManPrefab; [Header("购买的精灵数据")] public List listItem = new List(); private GameObject fishMan;//生成的渔船 private minerControl fishManShipContorl;//渔船的控制器 [Header("精灵生成点")] public Transform startPos; [Header("精灵终点")] public Transform endPos; [Header("房间类型编号")] public int type; public float ActivateValue = 0; public int Num = 0; public int Type = 0; [Header("精灵路径点集合")] public List paths; //航行时间 [Header("走路时间")] public float pathsNeedTimer = 30f; //捕鱼时间 [Header("挖矿时间")] public float fishingNeedTimer = 30f; //休息时间 [Header("休息时间")] public float restTimer = 5f; [Header("保存精灵对象")] List fishManlist = new List(); [Header("显示精灵数量")] public Text shipNumberTextPro; public int shipNumber; public int MaxShipNumber = 10; public int ShipNumber { get => shipNumber; set { shipNumber = value; shipNumberTextPro.text = shipNumber.ToString() + "/" + MaxShipNumber.ToString(); } } [Header("点击的特效")] public GameObject effectPrefab;//特效 [Header("点击按钮出现的动画")] public Transform OnBtnAni; public float FishPrice; public GameObject map; public static bool canClick = true; public List ids = new List(); //public int number; public GameObject musk; // Start is called before the first frame update private void Awake() { listItem = new List(); } public async void OnClick() { if (!canClick) { return; } if (fishMan == null) { //Promptmgr.Instance.PromptBubble("还没有买", Color.black, Color.red); return; } } /// /// 购买激活 /// public async void BuyActivation() { if (await ActivationRoom()) { add_fish(); this.ShipNumber += 1; } } public async void add_fish(string timerStr = null)//生成船只 { if (timerStr != null) { musk.gameObject.SetActive(false); fishMan = GameObject.Instantiate(fishManPrefab, this.transform); fishManlist.Add(fishMan); Vector3 pos = new Vector3(Random.Range((endPos.position.x-startPos.position.x)/2, endPos.position.x), endPos.position.y, endPos.position.z); fishMan.transform.position = pos; //fishMan.transform.position = endPos.position; fishManShipContorl = fishMan.GetComponent(); fishManShipContorl.init(this.paths, this.pathsNeedTimer, this.fishingNeedTimer, this.restTimer, this.startPos, this.endPos); Debug.Log("更新船时间"); return; } musk.gameObject.SetActive(false); fishMan = GameObject.Instantiate(fishManPrefab, this.transform); fishManlist.Add(fishMan); fishMan.transform.position = startPos.position; fishManShipContorl = fishMan.GetComponent(); fishManShipContorl.init(this.paths, this.pathsNeedTimer, this.fishingNeedTimer, this.restTimer, this.startPos, this.endPos); } public async Task ActivationRoom() { return await miner_jiekou.instance.MiningActivate(this.RoomId); } private void OnDisable() { foreach (GameObject obj in fishManlist) { Destroy(obj); } fishManlist.Clear(); } }