/// <summary> /// 更新 /// </summary> protected override void OnUpdate() { if (ElapsedTime >= EyeCloseTime) { EyeParam.Value = 0.0f; // 動いていない間にデフォルト値に戻っているのか、ここで維持する必要がある。 return; } ElapsedTime = Mathf.Min(ElapsedTime + Time.deltaTime, EyeCloseTime); float Value = (ElapsedTime / EyeCloseTime); if (!bIsOpening) { Value = 1.0f - Value; } EyeParam.Value = Value; if (ElapsedTime >= EyeCloseTime) { if (!bIsOpening) { Observable.Timer(TimeSpan.FromSeconds(2.0)) .Subscribe((_) => { bIsOpening = true; ElapsedTime = 0.0f; }); } else { OnCompleteSubject.OnNext(Unit.Default); IsActive = false; } } }
/// <summary> /// 更新 /// </summary> protected override void OnUpdate() { if (ElapsedTime >= AnimationTime) { SetValue(1.0f); return; } ElapsedTime = Mathf.Min(ElapsedTime + Time.deltaTime, AnimationTime); float Value = 1.0f - (ElapsedTime / AnimationTime); if (!bIsClosing) { Value = 1.0f - Value; } SetValue(Value); if (ElapsedTime >= AnimationTime) { if (!bIsClosing) { Observable.Timer(TimeSpan.FromSeconds(2.0)) .Subscribe((_) => { bIsClosing = true; ElapsedTime = 0.0f; }); } else { OnCompleteSubject.OnNext(Unit.Default); IsActive = false; } } }