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;
        }
    }
Exemple #3
0
    /// <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);
    }