带返回参数的协程
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Networking; using System;
public class Player : MonoBehaviour { ? ? public GameObject target;
? ? bool bArrived = false;
? ? // Start is called before the first frame update ? ? void Start() ? ? { ? ? ? ?? ? ? }
? ? // Update is called once per frame ? ? void Update() ? ? { ? ? ? ? Move(); ? ? ? ? Isreach(); ? ? }
? ? private void OnMouseDown() ? ? { ? ? ? ? Debug.Log("OnMouseDown..."); ? ? }
? ? IEnumerator GetBaidu(Action<string> callback) ? ? { ? ? ? ? UnityWebRequest webRequest = UnityWebRequest.Get("www.baidu.com"); ? ? ? ? yield return webRequest.SendWebRequest(); ? ? ? ? //Debug.Log(webRequest.downloadHandler.text); ? ? ? ? callback.Invoke("数据返回了..."); ? ? ? ? callback.Invoke(webRequest.downloadHandler.text); ? ? }
? ? void GetBaiDuCallBack(string message) ? ? { ? ? ? ? Debug.Log(System.DateTime.Now + " "+ ?message); ? ? }
? ? public void Isreach() ? ? { ? ? ? ? if(transform.position == target.transform.position) ? ? ? ? { ? ? ? ? ? ? if(!bArrived) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? bArrived = true; ? ? ? ? ? ? ? ? Debug.Log("和小球碰撞了!... Request..."); ? ? ? ? ? ? ? ? StartCoroutine(GetBaidu(GetBaiDuCallBack)); ? ? ? ? ? ? } ? ? ? ? } ? ? ? ? else ? ? ? ? { ? ? ? ? ? ? bArrived = false; ? ? ? ? } ? ? }
? ? public void Move() ? ? { ? ? ? ? if(Input.GetKeyDown(KeyCode.W) && transform.position.y < 1) ? ? ? ? { ? ? ? ? ? ? transform.Translate(Vector3.up); ? ?? ? ? ? ? }
? ? ? ? if (Input.GetKeyDown(KeyCode.D) && transform.position.x < 1) ? ? ? ? { ? ? ? ? ? ? transform.Translate(Vector3.right); ? ? ? ? }
? ? ? ? if (Input.GetKeyDown(KeyCode.A) && transform.position.x >-1) ? ? ? ? { ? ? ? ? ? ? transform.Translate(Vector3.left); ? ? ? ? }
? ? ? ? if (Input.GetKeyDown(KeyCode.S) && transform.position.y >-1) ? ? ? ? { ? ? ? ? ? ? transform.Translate(Vector3.down); ? ? ? ? } ? ? } } ?
|