如何在统一C#中运行游戏时触发此协程功能(如何使此协程像更新功能一样工作)

问题描述 投票:0回答:1

基本上,此代码将游戏对象的大小从大到小,然后从小到大。.(重复)现在,如果您希望通过在游戏运行时将bool可重复性设置为true或false来使它变得越来越小或越来越小,该怎么办就像,在更新函数中,我们有if函数。我希望在鼠标按下时发生这种情况[[yield return RepeatLerp(minScale,maxScale,duration);,并且发生这种情况yield return RepeatLerp(tramsform.localscale // //(对象的当前大小),minScale,持续时间) ;鼠标悬停时。

public class TouchMechanic : MonoBehaviour { Vector3 minScale; public Vector3 maxScale; public bool repeatable; public float speed = 2f; public float duration = 5f; public float timeStartedlerping ; public float z; IEnumerator Start() { minScale = transform.localScale; while (repeatable) { yield return RepeatLerp(minScale, maxScale, duration); yield return RepeatLerp(maxScale, minScale, duration); } } public IEnumerator RepeatLerp(Vector3 a, Vector3 b, float time) { float i = 0.0f; float rate = (1.0f / time) * speed; while (i < 1.0f) { i += Time.deltaTime * rate; transform.localScale = Vector3.Lerp(a, b, i); yield return null; } } }```
unity3d coroutine ienumerator scaletransform lerp
1个回答
0
投票
看来您希望您的代码像这样工作:

    调用协程时,当前刻度被记录为最小刻度。
© www.soinside.com 2019 - 2024. All rights reserved.