using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using DG.Tweening; public class TaskBase : MonoBehaviour { public static TaskBase Instacne { get { if (_instance == null) { _instance = new TaskBase(); } return _instance; } } private static TaskBase _instance; public GameObject shouTip; public Transform[] points;//手的点位 public Text tipText; protected GameObject shou; protected bool gameEnd = false; protected int curIndex = -1; [TextArea] public string[] taskInfo; protected virtual void Awake() { _instance = this; } protected virtual void Start() { StartTask(0); } protected virtual void Update() { if (gameEnd) return; shou.transform.position = points[curIndex].position + Vector3.down * 10; } protected void StartTask(int index) { curIndex = index; TaskTip(taskInfo[curIndex], points[curIndex].position); } public virtual void TaskTip(string str, Vector3 pos) { tipText.text = ""; tipText.DOText(str, 1); if (shou) { shou.SetActive(true); } else { shou = Instantiate(shouTip, FindObjectOfType().transform); } shou.transform.position = pos + Vector3.down * 10; } public virtual void FinishTask(int index) { if (index != curIndex) return; curIndex++; if (index == points.Length - 1) { shou.SetActive(false); tipText.text = ""; tipText.DOText("恭喜通关", 1); gameEnd = true; EduCoderTool.WebConnecter.Singleton.SendResultToWeb(true); return; } shou.SetActive(false); StartTask(curIndex); } public virtual void TaskFinish() { shou.SetActive(false); tipText.text = ""; tipText.DOText("恭喜通关", 1); } }