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); }
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); }
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); }
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()); }
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); }