private void Start() { UIComponentType componentType = GetComponentType(); if (componentType != UIComponentType.NotFound) { Init(componentType); } else { Debug.Log("Unknown UI Component Type"); } }
private void Init(UIComponentType componentType) { switch (componentType) { case UIComponentType.Text: _rectTransform = GetComponent <RectTransform>(); SpawnOutlineAndCorners(); ResizableUI.Instance.AddComponent(this, transform); break; case UIComponentType.InputField: _rectTransform = GetComponent <RectTransform>(); SpawnOutlineAndCorners(); ResizableUI.Instance.AddComponent(this, transform); break; case UIComponentType.TextMeshProUGUI: _rectTransform = GetComponent <RectTransform>(); SpawnOutlineAndCorners(); ResizableUI.Instance.AddComponent(this, transform); break; case UIComponentType.TMP_InputField: _rectTransform = GetComponent <RectTransform>(); SpawnOutlineAndCorners(); ResizableUI.Instance.AddComponent(this, transform); break; case UIComponentType.Image: _rectTransform = GetComponent <RectTransform>(); SpawnOutlineAndCorners(); ResizableUI.Instance.AddComponent(this, transform); break; case UIComponentType.RawImage: _rectTransform = GetComponent <RectTransform>(); SpawnOutlineAndCorners(); ResizableUI.Instance.AddComponent(this, transform); break; case UIComponentType.Slider: //TODO Add check for Background Image Transform _rectTransform = GetComponent <RectTransform>(); SpawnOutlineAndCorners(); Image[] childImgs = transform.GetComponentsInChildren <Image>(); for (int x = 0; x < childImgs.Length; x++) { ResizableUI.Instance.AddComponent(this, childImgs[x].transform); } break; case UIComponentType.Scrollbar: _rectTransform = GetComponent <RectTransform>(); SpawnOutlineAndCorners(); ResizableUI.Instance.AddComponent(this, transform); break; case UIComponentType.Toggle: _rectTransform = GetComponent <RectTransform>(); SpawnOutlineAndCorners(); //HACK fix this to create one entry ResizableUI.Instance.AddComponent(this, transform.GetChild(0)); ResizableUI.Instance.AddComponent(this, transform.GetChild(1)); break; } }
/// <summary> /// 从字典中获取合适的代码 /// </summary> /// <param name="type">UI类型</param> /// <param name="part">获取代码片段</param> /// <param name="selctGoName">选择的GameObject名称</param> /// <returns></returns> public static Dictionary <string, string> GetAppropriateCodeFromDic(UIComponentType type, PartCode part, string selctGoName, string selectGoPath) { Dictionary <string, string> codeDict = new Dictionary <string, string>(); string partCode; switch (part) { case PartCode.Define | PartCode.Path | PartCode.Component: { //Path predefineRules.TryGetValue(type + "" + PartCode.Path, out partCode); codeDict.Add(selctGoName + PartCode.Path, partCode.Replace("XXXXX", selctGoName).Replace("PPPPP", selectGoPath)); //Define predefineRules.TryGetValue(type + "" + PartCode.Define, out partCode); codeDict.Add(selctGoName + PartCode.Define, partCode.Replace("XXXXX", selctGoName)); //Component predefineRules.TryGetValue(type + "" + PartCode.Component, out partCode); codeDict.Add(selctGoName + PartCode.Component, partCode.Replace("XXXXX", selctGoName)); } break; case PartCode.Define | PartCode.Path | PartCode.Component | PartCode.Method: { predefineRules.TryGetValue(type + "" + PartCode.Define, out partCode); codeDict.Add(selctGoName + PartCode.Define, partCode.Replace("XXXXX", selctGoName)); predefineRules.TryGetValue(type + "" + PartCode.Component, out partCode); codeDict.Add(selctGoName + PartCode.Component, partCode.Replace("XXXXX", selctGoName)); predefineRules.TryGetValue(type + "" + PartCode.Method, out partCode); codeDict.Add(selctGoName + PartCode.Method, partCode.Replace("XXXXX", selctGoName)); } break; case PartCode.Path | PartCode.Define | PartCode.Component | PartCode.EventStatement | PartCode.RegisterEvent | PartCode.UnRegisterEvent: { //Path predefineRules.TryGetValue(type + "" + PartCode.Path, out partCode); codeDict.Add(selctGoName + PartCode.Path, partCode.Replace("XXXXX", selctGoName).Replace("PPPPP", selectGoPath)); //Define predefineRules.TryGetValue(type + "" + PartCode.Define, out partCode); codeDict.Add(selctGoName + PartCode.Define, partCode.Replace("XXXXX", selctGoName)); //Component predefineRules.TryGetValue(type + "" + PartCode.Component, out partCode); codeDict.Add(selctGoName + PartCode.Component, partCode.Replace("XXXXX", selctGoName)); //EventStatement predefineRules.TryGetValue(type + "" + PartCode.EventStatement, out partCode); codeDict.Add(selctGoName + PartCode.EventStatement, partCode.Replace("XXXXX", selctGoName)); //RegisterEvent predefineRules.TryGetValue(type + "" + PartCode.RegisterEvent, out partCode); codeDict.Add(selctGoName + PartCode.RegisterEvent, partCode.Replace("XXXXX", selctGoName)); //UnRegisterEvent predefineRules.TryGetValue(type + "" + PartCode.UnRegisterEvent, out partCode); codeDict.Add(selctGoName + PartCode.UnRegisterEvent, partCode.Replace("XXXXX", selctGoName)); } break; } return(codeDict); }