Unity带参数的协程

两种方法都可以传递参数,代码如下:

 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 public class Test : MonoBehaviour
 5 {
 6     void Start()
 7     {
 8         StartCoroutine("Method", "AaronBlog");
 9         StartCoroutine(Method("AaronBlog"));
10     }
11 
12     IEnumerator Method(string name)
13     {
14         Debug.Log(name);
15         yield return 0;
16     }
17 }

停止带参数的协程,方法和停止不带参数的协程方法一样:

1 StopCoroutine("Method");

 

转载于:https://www.cnblogs.com/AaronBlogs/p/6832399.html

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Unity中的StartCoroutine函数中传递参数,您可以使用以下两种方法之一: 1.使用lambda表达式 您可以使用lambda表达式将参数传递给协程函数。以下是示例代码: ```csharp public class Test : MonoBehaviour { private IEnumerator MyCoroutine(int myParam) { // 协程函数体 yield return null; } private void Start() { int myParamValue = 10; StartCoroutine(() => MyCoroutine(myParamValue)); } } ``` 此代码将MyCoroutine函数作为lambda表达式传递给StartCoroutine函数,该表达式将myParamValue参数传递给MyCoroutine函数。 2.使用IEnumeratorWrapper 您还可以使用IEnumeratorWrapper类将参数传递给协程函数。以下是示例代码: ```csharp public class Test : MonoBehaviour { private IEnumerator MyCoroutine(int myParam) { // 协程函数体 yield return null; } private void Start() { int myParamValue = 10; StartCoroutine(new IEnumeratorWrapper(MyCoroutine(myParamValue))); } } public class IEnumeratorWrapper { private readonly IEnumerator _enumerator; public IEnumeratorWrapper(IEnumerator enumerator) { _enumerator = enumerator; } public bool MoveNext() { return _enumerator.MoveNext(); } public void Reset() { _enumerator.Reset(); } public object Current { get { return _enumerator.Current; } } } ``` 此代码创建了一个IEnumeratorWrapper类,该类将MyCoroutine函数作为参数传递给了StartCoroutine函数。这个包装器类将允许您传递参数协程函数。 无论哪种方法,都可以在协程函数中使用传递的参数。例如,在MyCoroutine函数中,您可以使用以下代码访问参数: ```csharp private IEnumerator MyCoroutine(int myParam) { Debug.Log("myParam = " + myParam); yield return null; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值