博主信息
博文 95
粉丝 0
评论 11
访问量 285215
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
协成方法的使用 Coroutine
龍__遇见彩虹的博客
原创
1482人浏览过
using UnityEngine;
using System.Collections;
/*
 *协成方法的使用  Coroutine
 * 
 * 1.返回值是IEnumerator
 * 2.返回参数的时候使用yield return null/0;
 * 3.协成方法的调用 StartCoroutine( method() );
 */ 
public class DemoController : MonoBehaviour {
    private void Start()
    {
        //可以在任意地方调用协成方法
        StartCoroutine(printStr());
    }
    IEnumerator printStr()
    {
        print("1");
        yield return new WaitForSeconds(1);//等待一秒后执行下一步
        print("2");
        yield return new WaitForSeconds(5);//等待五秒后执行下一步
        print("3");
        yield return null;
    }
}


using UnityEngine;
using System.Collections;
/*
 *协成方法的使用  Coroutine
 * 
 * 1.返回值是IEnumerator
 * 2.返回参数的时候使用yield return null/0;
 * 3.协成方法的调用 StartCoroutine( method() );
 */ 
public class DemoController : MonoBehaviour {
    public GameObject tarGet;
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            StartCoroutine(colorChange());
        }
    }
    IEnumerator colorChange()
    {
        //死循环
        for (;;)
        {
            Color tarGetColor = tarGet.GetComponent<MeshRenderer>().material.color;
            
            //Lerp  当T=0返回a,当T=1返回b时,当T=0.5返回a和b的中点时
            Color newColor = Color.Lerp(tarGetColor, Color.red, 0.02f);
            tarGet.GetComponent<MeshRenderer>().material.color = newColor;
            yield return new WaitForSeconds(0.02f);
            if (Mathf.Abs(Color.red.g - newColor.g) <= 0.01f)
            {
                break;
            }
        }
    }
}



**协成方法的启用和停用--停止协成StopCoroutine

传入返回值:

private IEnumerator ie;
if (Input.GetKeyDown(KeyCode.Space))
{       
    ie = colorChange();
   StartCoroutine(ie);
}
if (Input.GetKeyDown(KeyCode.S))
{     
     StopCoroutine(ie);
 }


使用方法名字符串:

if (Input.GetKeyDown(KeyCode.Space))
{
   StartCoroutine("colorChange");
}
if (Input.GetKeyDown(KeyCode.S))
{
   StopCoroutine("colorChange");
}


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学