当前位置: 首页 > news >正文

我市精神文明建设的门户网站人人车网站建设费用

我市精神文明建设的门户网站,人人车网站建设费用,网站建设一键搭建,建设黑彩网站Unity协程是一种特殊的函数#xff0c;可以让你在Unity中创建一种类似于多线程的异步操作。它可以在需要等待某个操作完成时#xff0c;暂停执行当前代码#xff0c;等待某个条件满足后再继续执行。 在一般情况下 unity中调用函数时#xff0c;函数将运行到完成状态#x…Unity协程是一种特殊的函数可以让你在Unity中创建一种类似于多线程的异步操作。它可以在需要等待某个操作完成时暂停执行当前代码等待某个条件满足后再继续执行。 在一般情况下 unity中调用函数时函数将运行到完成状态然后返回。这实际上意味着在函数中发生的任何动作都必须在单帧更新内发生函数调用不能用于包含程序性动画或随时间推移的一系列事件。例如假设需要逐渐减少对象的 Alpha不透明度值直至对象变得完全不可见。 void Fade() {for (float ft 1f; ft 0; ft - 0.1f) {Color c renderer.material.color;c.a ft;renderer.material.color c;} }就目前而言Fade 函数不会产生期望的效果。因为该函数将完全在单个帧更新中执行为了使淡入淡出过程可见必须通过一系列帧降低 Alpha 以显示正在渲染的中间值。这种情况下永远不会看到中间值对象会立即消失。 可以通过向 Update 函数添加代码此代码逐帧执行淡入淡出来处理此类情况。但是使用协程来执行此类任务通常会更方便。 协程就像一个函数能够暂停执行并将控制权返还给 Unity然后在下一帧继续执行。在 C# 中声明协程的方式如下 IEnumerator Fade() {for (float ft 1f; ft 0; ft - 0.1f) {Color c renderer.material.color;c.a ft;renderer.material.color c;yield return null;} }此协程本质上是一个用返回类型 IEnumerator 声明的函数并在主体中的某个位置包含 yield return 语句。yield return null 行是暂停执行并随后在下一帧恢复的点。要将协程设置为运行状态必须使用 StartCoroutine 函数 通过以上学习 我们可以实现一些具体的功能了比如UI闪烁的功能本质就是透明度a值的改变 以下是一个UI闪烁类 直接挂载到button上即可 using UnityEngine; using UnityEngine.UI; using System.Collections;public class UIFlash : MonoBehaviour {public float flashInterval 0.5f; // 闪烁时间间隔public float minAlpha 0f; // 最小透明度public float maxAlpha 1f; // 最大透明度private Image image;private Coroutine flashCoroutine;void Awake(){image GetComponentImage();}void OnEnable(){if (flashCoroutine null){flashCoroutine StartCoroutine(Flash());}}void OnDisable(){if (flashCoroutine ! null){StopCoroutine(flashCoroutine);flashCoroutine null;image.color new Color(image.color.r, image.color.g, image.color.b, maxAlpha); // 恢复初始透明度}}IEnumerator Flash(){while (true){image.color new Color(image.color.r, image.color.g, image.color.b, minAlpha);yield return new WaitForSeconds(flashInterval);image.color new Color(image.color.r, image.color.g, image.color.b, maxAlpha);yield return new WaitForSeconds(flashInterval);}} } 当然也有更简单的方法Mathf.PingPong轻易的实现这个效果 public class NewBehaviourScript : MonoBehaviour {private Color HintColor;//自己定义一个想要的颜色默认是黑色Image image;private void Start(){image GetComponentImage();}private void Update(){// HintColornew Color(Random.Range(0f,1f),Random.Range(0f,1f),Random.Range(0f,1f));//随机颜色HintColor.a Mathf.PingPong(5 * Time.time, 1F);image.color HintColor;} } 在Unity中协程并不是真正的多线程而是一种协作式的多任务处理方式。 协程实际上是一种函数它可以被中断和恢复执行。当协程执行到yield return语句时它会暂停执行并将控制权交给协程管理器让其他协程或主线程有机会执行。当等待的条件满足后协程管理器会恢复执行该协程。 比如一个简单的计时器程序。 public IEnumerator StartTime() {while (secound 0){yield return new WaitForSeconds(1);secound--;changeText();Debug.Log(secound);}if (secound 0){button_xuzi.interactable true;}}尽管协程是在单个线程中执行的但协程可以在主线程和后台线程之间切换执行。例如当协程等待某个耗时操作完成时它可以暂停执行并将控制权交给主线程或后台线程去执行其他任务待耗时操作完成后再恢复执行该协程。 因此尽管协程并不是真正的多线程但它可以让我们在单线程中实现类似于多线程的异步操作从而提高程序的效率和响应性。同时使用协程也可以简化代码实现使得程序更易于理解和维护。 协程通常用于场景加载在Unity中场景加载通常是一个比较耗时的操作需要花费一定的时间来读取场景数据并进行初始化。如果在主线程中直接进行场景加载会导致程序卡顿用户体验不佳。因此Unity提供了异步加载场景的功能可以使用协程来实现。可以使用slider.valueprogress制作进度条 进度 可以防止“卡”在当前场景并不是真的卡 而是在加载。 IEnumerator LoadSceneAsync(){AsyncOperation asyncOperation SceneManager.LoadSceneAsync(场景名);asyncOperation.allowSceneActivation false; // 禁止自动跳转到加载的场景while (!asyncOperation.isDone){Debug.Log(场景加载进度 asyncOperation.progress);if (asyncOperation.progress 0.9f){asyncOperation.allowSceneActivation true; // 加载完成后允许自动跳转到加载的场景}yield return null;}// 在加载完成后执行的代码Debug.Log(场景加载完成);}1.加载场景数据使SceneManager.LoadSceneAsync()AssetBundle.LoadAssetAsync()等异步加载场景数据。 2.显示加载进度在加载场景数据的过程中可以显示一个加载进度条或动画让用户知道加载的进度和状态。 3.初始化场景在场景数据加载完成后需要对场景中的对象进行初始化和设置例如设置摄像机位置、激活游戏对象等。 4.等待一段时间在场景初始化完成后可以暂停一段时间让场景中的对象有时间进行启动和初始化以避免场景加载完成后仍然出现卡顿现象。 5.完成场景加载在等待一段时间后可以通知主线程场景加载完成从而让主线程进行后续处理 。 注意协程不是多线程
http://www.dnsts.com.cn/news/50053.html

相关文章:

  • 刚做的网站上线后收不到了企业管理咨询是做什么
  • 福田响应式网站建设服务济南公司做网站
  • 站长工具seo诊断深圳建设集团招标
  • 如何快速网站备案常见的网络推广方法有几种
  • 网站开发兼容极速字体颜色推荐北京尚层装饰总部电话
  • 网站开发岗位思维导图新开传奇网站一
  • dw建设网站步骤房管局官网app
  • html5 手机网站模板建设品牌网站的好处
  • 网站开发框架具体使用方法做电影网站代理合法么
  • 论企业网站职能建设wordpress整站
  • 网站优化布局广州软件开发软件公司
  • 网站页面如何架构陕西网站建设哪家专业
  • 做网站赚钱方法网页和网站是一样的吗
  • 地方网站名称网页版微信官方下载
  • 学校建设网站的背景seo引擎优化是什么意思
  • 提供佛山网站制作写作的网站哪个好
  • 最新网站域名ip查询杭州专业网站制作设计
  • 专业设计科技展厅公司seo公司杭州
  • 在国税网站更换购票员怎么做WordPress主题去授权
  • 仁寿建设局网站佛山室内设计公司排名
  • 临汾网站建设需要做网站的企业
  • 网站栏目页优化免费创建网站带咨询的
  • 苏州归巢网络科技有限公司网站seo的内容是什么
  • 如何做网站教程工作 网站建设内容
  • 用php做网站后台微信小程序开通流程
  • 网站防注入网站建设 专项资金变更
  • 安康网站建设技巧网站建设一百互联
  • 金华市网站建设福州大型网站建设
  • 找网站做网站做网站wordpress速度慢
  • 解析到网站怎样做企业网站 更新 seo