Ejemplo n.º 1
0
    public void Open()
    {
        gameObject.SetActive(true);
        ClearAllContent();

        MonthToggle.isOn = false;
        WeekToggle.isOn  = true;
        StatisticsManager.Instance.GetAllStatisticsAsync(0, () => Scroll.Rebuild(CanvasUpdate.PostLayout));
        StatisticsManager.Instance.GetAllStatisticsAsync(2, () => Scroll.Rebuild(CanvasUpdate.PostLayout));
    }
        private void InitTypeItems()
        {
            NodeType         nodeType = _nodeAttr.Node.GetNodeType();
            CustomDefineType type     = CustomDefine.GetTypeByNodeType(nodeType);

            _typeNameList = CustomDefine.GetCustomDefineListByType(type);
            for (int i = 0; i < _typeNameList.Count; i++)
            {
                GameObject    item = ResourceManager.GetInstance().GetPrefab("Prefabs/Views/EditViews", "SelectCustomizedTypeItem");
                RectTransform tf   = item.GetComponent <RectTransform>();
                tf.SetParent(_itemContainerTf, false);
                Text typeNameText = tf.Find("CustomizedTypeText").GetComponent <Text>();
                typeNameText.text = _typeNameList[i];
                item.GetComponent <Image>().color = UnSelectedColor;
                int itemIndex = i;
                UIEventListener.Get(item).AddClick(() => {
                    OnItemClickHandler(itemIndex, false);
                });
                _itemList.Add(item);
            }
            // 计算content面板的高度
            float preferredHeight = _typeNameList.Count * 30 + 5;

            _contentPreferredHeight    = preferredHeight < _contentDefaultSize.y ? _contentDefaultSize.y : preferredHeight;
            _itemContainerTf.sizeDelta = new Vector2(_contentDefaultSize.x, _contentPreferredHeight);
            _contentScrollRect.Rebuild(CanvasUpdate.PostLayout);
            _curSelectedItemIndex = -1;
            // 默认选中节点值的那个item,如果没有对应的,则不选中任何一个
            int index = _typeNameList.IndexOf(_nodeAttr.GetValueString());

            OnItemClickHandler(index, true);
        }
Ejemplo n.º 3
0
        private void AddLogItem(LogLevel level, string msg)
        {
            GameObject go      = ResourceManager.GetInstance().GetPrefab("Prefabs/Views", "MainView/LogItem");
            Transform  tf      = go.transform;
            Image      logImg  = tf.Find("LogImage").GetComponent <Image>();
            Text       logText = tf.Find("LogText").GetComponent <Text>();

            if (level == LogLevel.Normal)
            {
                logImg.sprite = ResourceManager.GetInstance().GetSprite("ShortcutsAtlas", "Info");
            }
            else if (level == LogLevel.Warning)
            {
                logImg.sprite = ResourceManager.GetInstance().GetSprite("ShortcutsAtlas", "Warning");
            }
            else
            {
                logImg.sprite = ResourceManager.GetInstance().GetSprite("ShortcutsAtlas", "Error");
            }
            logText.text = "    " + msg;
            if (_logGoList.Count >= LogMaxCount)
            {
                GameObject removeGo = _logGoList[0];
                _logGoList.RemoveAt(0);
                GameObject.Destroy(removeGo);
            }
            tf.SetParent(_logInfoContainer, false);
            LayoutRebuilder.ForceRebuildLayoutImmediate(_logInfoContainer);
            _logPanelScrollRect.Rebuild(CanvasUpdate.PostLayout);
            _logPanelScrollBar.value = 0;
            _logGoList.Add(go);
        }
Ejemplo n.º 4
0
    static int Rebuild(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        ScrollRect   obj  = LuaScriptMgr.GetUnityObject <ScrollRect>(L, 1);
        CanvasUpdate arg0 = LuaScriptMgr.GetNetObject <CanvasUpdate>(L, 2);

        obj.Rebuild(arg0);
        return(0);
    }
    static int Rebuild(IntPtr L)
    {
        LuaScriptMgr.CheckArgsCount(L, 2);
        ScrollRect   obj  = (ScrollRect)LuaScriptMgr.GetUnityObjectSelf(L, 1, "ScrollRect");
        CanvasUpdate arg0 = (CanvasUpdate)LuaScriptMgr.GetNetObject(L, 2, typeof(CanvasUpdate));

        obj.Rebuild(arg0);
        return(0);
    }
Ejemplo n.º 6
0
        void UpdateAllShownElementPos()
        {
            var elementCount = _activeElementList.Count;

            if (elementCount == 0)
            {
                return;
            }

            var oldVelocity = (_contentTrans.localPosition - _lastFrameContentPos) / Time.deltaTime;

            if (_arrangeType == ListElementArrangeType.TopToBottom)
            {
                float pos        = 0;
                float headElePos = _activeElementList[0].CachedRectTransform.localPosition.y;
                float offset     = pos - headElePos;
                float curY       = pos;
                for (int i = 0; i < elementCount; i++)
                {
                    var ele = _activeElementList[i];
                    ele.SetPosition(new Vector3(ele.StartPosOffset, curY));
                    curY = curY - ele.ElementSizeWithPadding;
                }

                if (offset != 0)
                {
                    var p = _contentTrans.localPosition;
                    p.y = p.y - offset;
                    SetContentPosition(p);
                }
            }
            else if (_arrangeType == ListElementArrangeType.BottomToTop)
            {
            }
            else if (_arrangeType == ListElementArrangeType.LeftToRight)
            {
                float pos        = 0;
                float headElePos = _activeElementList[0].CachedRectTransform.localPosition.x;
                float offset     = pos - headElePos;
                float curX       = pos;
                for (int i = 0; i < elementCount; i++)
                {
                    var ele = _activeElementList[i];
                    ele.SetPosition(new Vector3(curX, ele.StartPosOffset));
                    curX = curX + ele.ElementSizeWithPadding;
                }

                if (offset != 0)
                {
                    var p = _contentTrans.localPosition;
                    p.x = p.x - offset;
                    SetContentPosition(p);
                }
            }
            else if (_arrangeType == ListElementArrangeType.RightToLeft)
            {
            }

            if (_isDraging)
            {
                _scrollRect.OnBeginDrag(_pointerEventData);
                _scrollRect.Rebuild(CanvasUpdate.PostLayout);
                _scrollRect.velocity = oldVelocity;
            }
        }
    // Use this for initialization
    void Start()
    {
        // kill itself if already in scene.
        if (Exists)
        {
            Debug.Log("Kill UIObject because it already exists.");
            Destroy(gameObject);
            return;
        }

        DontDestroyOnLoad(gameObject);

        //Debug.Log("Need to create " + (UnityEngine.SceneManagement.SceneManager.sceneCountInBuildSettings - 1) + " test result object.");

        // Set scroll view content to fit all results
        scrollView.content.anchorMin = new Vector2(0f, 0f);
        scrollView.content.anchorMax = new Vector2(1f, 0f);
        scrollView.content.offsetMin = new Vector2(0f, -(UnityEngine.SceneManagement.SceneManager.sceneCountInBuildSettings - 1f) * 200f);
        scrollView.content.offsetMax = new Vector2(0f, 0f);

        // Init results arrays
        numOfResults    = UnityEngine.SceneManagement.SceneManager.sceneCountInBuildSettings - 1;
        avgResults      = new int[numOfResults];
        maxResults      = new int[numOfResults];
        resultsLabels   = new Text[numOfResults];
        resultsAvgValue = new Text[numOfResults];
        resultsAvgFill  = new RectTransform[numOfResults];
        resultsMaxValue = new Text[numOfResults];
        resultsMaxFill  = new RectTransform[numOfResults];
        testResults     = new List <GameObject>(numOfResults);

        // Create results UI
        for (int i = 0; i < numOfResults; ++i)
        {
            RectTransform singleTestResult = Instantiate(testResultPrefab);

            testResults.Add(singleTestResult.gameObject);
            resultsLabels[i]   = singleTestResult.Find("Label").GetComponent <Text>();
            resultsAvgValue[i] = singleTestResult.Find("Avg_Value/Text").GetComponent <Text>();
            resultsAvgFill[i]  = singleTestResult.Find("Avg_Value/Fill").GetComponent <RectTransform>();
            resultsMaxValue[i] = singleTestResult.Find("Max_Value/Text").GetComponent <Text>();
            resultsMaxFill[i]  = singleTestResult.Find("Max_Value/Fill").GetComponent <RectTransform>();

            singleTestResult.SetParent(scrollView.content);
            singleTestResult.anchorMin = new Vector2(0, 0);
            singleTestResult.anchorMax = new Vector2(1, 0);
            singleTestResult.offsetMin = new Vector2(0, scrollView.content.rect.height - (i + 1) * 200f);
            singleTestResult.offsetMax = new Vector2(0, singleTestResult.offsetMin.y + 200f);

            int sceneIndex = i;
            singleTestResult.GetComponent <Button>().onClick.AddListener(delegate() { LoadSceneResult(sceneIndex); });

            //* Test the values
            SetResult(i, 1.0f * i / (numOfResults - 1), 0.5f);
        }
        CalculateOverall();

        scrollView.Rebuild(UnityEngine.UI.CanvasUpdate.PostLayout);

        eventSystem = GetComponentInChildren <EventSystem>();
        eventSystem.SetSelectedGameObject(testResults[0]);

        resultsPanel.SetActive(false);
        waitingPanel.SetActive(false);
        scenePanel.SetActive(false);

        resultComparerMaterial = Instantiate(resultImage.material);
        resultImage.material   = resultComparerMaterial;

        // Initialize render textures
        currentRT = new RenderTexture(1920, 1080, 0, RenderTextureFormat.ARGB32);
        resultRT  = new RenderTexture(1920, 1080, 0, RenderTextureFormat.ARGB32);

        scenePanelText = scenePanel.transform.Find("Text").GetComponent <Text>();
        waitingImage   = waitingPanel.transform.Find("Image").GetComponent <Image>();

        // Load scenes and calculate the results.
        StartCoroutine(CalculateAllResults());
    }
Ejemplo n.º 8
0
        public bool ProcessEvent(string label, string[] args)
        {
            switch (label)
            {
            case ":help":
                Debug.Log(@"terminal events: 12
    - :help: log all terminal events
    - :clear: clear the terminal
    - :opacity [value]: change the background opacity
    - :fontsize [value]: change the size of the text
    - :show: show the terminal
    - :hide: hide the terminal
    - :toggle: toggle the visibility of the terminal
    - :stacktrace [value]: choose to display the stack trace in the terminal
    - :maxchars [value]: change the maximum number of characters that can be displayed in the terminal
    - :showonerror [value]: show the terminal when an error/exception occurs
    - :scrollbarwidth [value]: set the width of the scrollbar
    - :font [name]: display and set the current font");
                return(true);

            case ":clear":
                _strBuilder.Clear();
                _newLog = true;
                return(true);

            case ":opacity":
                if (args.Length == 0)
                {
                    _strBuilder.Append(_background.color.a).Append("\n");
                    _newLog = true;
                }
                else if (args.Length == 1)
                {
                    if (float.TryParse(args[0], NumberStyles.Float, CultureInfo.InvariantCulture, out float opacity))
                    {
                        _background.color = new Color(_background.color.r, _background.color.g, _background.color.b, opacity);
                    }
                    else
                    {
                        Debug.LogError("cannot parse \'" + args[0] + "\' to float");
                    }
                }
                else
                {
                    Debug.LogWarning("syntax error");
                }
                return(true);

            case ":fontsize":
                if (args.Length == 0)
                {
                    _strBuilder.Append(_text.fontSize).Append("\n");
                    _newLog = true;
                }
                else if (args.Length == 1)
                {
                    if (int.TryParse(args[0], NumberStyles.Integer, CultureInfo.InvariantCulture, out int size))
                    {
                        _text.fontSize = size;
                    }
                    else
                    {
                        Debug.LogError("cannot parse \'" + args[0] + "\' to int");
                    }
                }
                else
                {
                    Debug.LogWarning("syntax error");
                }
                return(true);

            case ":show":
                show();
                return(true);

            case ":hide":
                hide();
                return(true);

            case ":toggle":
                toggleVisibility();
                return(true);

            case ":stacktrace":
                if (args.Length == 0)
                {
                    _strBuilder.Append(_logStackTrace).Append("\n");
                    _newLog = true;
                }
                else if (args.Length == 1)
                {
                    if (bool.TryParse(args[0], out bool logStackTrace))
                    {
                        _logStackTrace = logStackTrace;
                    }
                    else
                    {
                        Debug.LogError("cannot parse \'" + args[0] + "\' to bool");
                    }
                }
                else
                {
                    Debug.LogWarning("syntax error");
                }
                return(true);

            case ":maxchars":
                if (args.Length == 0)
                {
                    _strBuilder.Append(_maxChars).Append("\n");
                    _newLog = true;
                }
                else if (args.Length == 1)
                {
                    if (int.TryParse(args[0], NumberStyles.Integer, CultureInfo.InvariantCulture, out int maxChars))
                    {
                        _maxChars = maxChars;
                    }
                    else
                    {
                        Debug.LogError("cannot parse \'" + args[0] + "\' to int");
                    }
                }
                else
                {
                    Debug.LogWarning("syntax error");
                }
                return(true);

            case ":showonerror":
                if (args.Length == 0)
                {
                    _strBuilder.Append(_displayOnError).Append("\n");
                    _newLog = true;
                }
                else if (args.Length == 1)
                {
                    if (bool.TryParse(args[0], out bool displayOnError))
                    {
                        _displayOnError = displayOnError;
                    }
                    else
                    {
                        Debug.LogError("cannot parse \'" + args[0] + "\' to bool");
                    }
                }
                else
                {
                    Debug.LogWarning("syntax error");
                }
                return(true);

            case ":scrollbarwidth":
                if (args.Length == 0)
                {
                    RectTransform scrollBar = _scrollRect.verticalScrollbar.GetComponent <RectTransform>();
                    if (scrollBar != null)
                    {
                        float width = -scrollBar.offsetMin.x;
                        _strBuilder.Append(width).Append("\n");
                        _newLog = true;
                    }
                    else
                    {
                        Debug.LogWarning("no scrollbar assigned!");
                    }
                }
                else if (args.Length == 1)
                {
                    if (float.TryParse(args[0], NumberStyles.Float, CultureInfo.InvariantCulture, out float scrollBarWidth))
                    {
                        RectTransform scrollBar = _scrollRect.verticalScrollbar.GetComponent <RectTransform>();
                        if (scrollBar != null)
                        {
                            scrollBar.offsetMin = new Vector2(-scrollBarWidth, scrollBar.offsetMin.y);
                            _scrollRect.Rebuild(CanvasUpdate.Prelayout);
                        }
                        else
                        {
                            Debug.LogWarning("no scrollbar assigned!");
                        }
                    }
                    else
                    {
                        Debug.LogError("cannot parse \'" + args[0] + "\' to float");
                    }
                }
                else
                {
                    Debug.LogWarning("syntax error");
                }
                return(true);

            case ":font":
                if (args.Length == 0)
                {
                    Debug.Log(_text.font.name);
                }
                else if (args.Length == 1)
                {
                    Font font = Shell.Main.GetFont(args[0]);
                    if (font != null)
                    {
                        _text.font = font;
                        _input.textComponent.font = font;
                        Text placeHolder = _input.placeholder.GetComponent <Text>();
                        if (placeHolder != null)
                        {
                            placeHolder.font = font;
                        }
                    }
                    else
                    {
                        Debug.LogWarning("font not found!");
                    }
                }
                else
                {
                    Debug.LogWarning("syntax error");
                }
                return(true);

            case ":throw":
                throw new System.Exception(string.Join(" ", args));
            }

            return(false);
        }