【发布时间】:2019-08-29 09:44:37
【问题描述】:
我有一个合作例程,一旦选择就会播放。 co 例程将对象放大。它选择的第二个对象会缩小对象。
但是,如果我再次选择它,则不会发生任何事情。不过,它确实第一次起作用。
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class square : MonoBehaviour
{
public Transform Button;
float ElapsedTime = 0.0f;
float TotalTime = 0.4f;
private bool _isenlargingcanvas;
public void enlargecanvas()
{
if (_isenlargingcanvas)
return;
_isenlargingcanvas = true;
StartCoroutine(transitionscale());
_isenlargingcanvas = false;
}
IEnumerator transitionscale()
{
while (ElapsedTime < TotalTime)
{
ElapsedTime += Time.deltaTime;
Button.localScale = Vector3.Lerp(new Vector3(0, 0, 0), new
Vector3(9, 7, 7), (ElapsedTime / TotalTime));
yield return null;
}
}
private bool _isshrinkingcanvas;
public void shrinkcanvas()
{
if (_isshrinkingcanvas)
return;
_isshrinkingcanvas = true;
StartCoroutine(transitionscaledown());
_isshrinkingcanvas = false;
}
IEnumerator transitionscaledown()
{
while (ElapsedTime < TotalTime)
{
ElapsedTime += Time.deltaTime;
Button.localScale = Vector3.Lerp(new Vector3(9, 7, 7), new
Vector3(0, 0, 0), (ElapsedTime / TotalTime));
yield return null;
}
}
}
我有一个合作例程,一旦选择就会播放。 co 例程将对象放大。它选择的第二个对象会缩小对象。
但是,如果我再次选择它,则不会发生任何事情。不过,它确实第一次起作用。
【问题讨论】:
-
所以添加一些调试语句 - 事实上你的 _isshrink 可能在协程真正开始之前再次设置为 false,这无济于事。