Example #1
0
    /// <summary>
    /// ExitStateのDo処理をする関数
    /// </summary>
    public void OnExit()
    {
        var newsUIRect = gameObject.GetComponent <RectTransform>();
        // 1フレーム間の移動量を計算する
        float moveValuePer1SecondSpeed = distance / entryTime;
        float moveValuePer1frameSpeed  = moveValuePer1SecondSpeed * Time.deltaTime;
        // 移動
        var newsUIPos = newsUIRect.localPosition;

        newsUIPos += normalMoveVec * moveValuePer1frameSpeed;
        newsUIRect.localPosition = newsUIPos;
        // 移動量を更新
        nowDistance += moveValuePer1frameSpeed;
        // 規定距離以上移動したなら
        if (nowDistance > distance)
        {
            // X方向のみ位置を修正
            var rectPos = newsUIRect.localPosition;
            rectPos.x = targetPos.x;
            newsUIRect.localPosition = rectPos;
            // EntryStateを終了
            newsUI.IdleStart();
        }
    }