示例#1
0
    public void OnEnable()
    {
        widget = target as GWidget;
        if (!Application.isPlaying)
        {
            if (widget.GetComponentInParent <GFrame>())
            {
                if (widget.name != "__preview__")
                {
                    Object parentObject = PrefabUtility.GetPrefabParent(widget);
                    if (parentObject)
                    {
                        string  path   = AssetDatabase.GetAssetPath(parentObject);
                        GWidget prefab = AssetDatabase.LoadAssetAtPath <GWidget>(path);
                        if (prefab)
                        {
                            //add prefab instance
                            GameObject obj = new GameObject(widget.name);
                            obj.AddComponent <RectTransform>();
                            GPrefabInstance gpi = obj.AddComponent <GPrefabInstance>();
                            gpi.prefab = prefab;
                            obj.transform.SetParent(widget.transform.parent, false);
                            obj.transform.SetSiblingIndex(widget.transform.GetSiblingIndex());

                            gpi.Instantiate();

                            GameObject.DestroyImmediate(widget.gameObject);
                        }
                    }
                }
            }
        }
        propertyList       = InitExportPropertyList();
        eventList          = InitExportEventList();
        exportToScriptList = InitExportToScriptList();
    }