示例#1
0
    /// <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;
            }
        }
    }