Esempio n. 1
0
    public void Split(GameObject parentGameObject, string splitType, int count)
    {
        Debug.Log("Split Called!");

        for (int i = 0; i < count; ++i)
        {
            GameObject newSplitObject = Instantiate(uiPrefab, parentGameObject.transform.position, Quaternion.identity, parentGameObject.transform);
        }

        SplittingComponent splitScriptComponent = parentGameObject.GetComponent <SplittingComponent>();

        if (splitType == "fixedRow")
        {
            FlexibleGridLayout component = parentGameObject.GetComponent <FlexibleGridLayout>();
            component.fitType = FlexibleGridLayout.FitType.FixedRows;
            component.rows    = 1;
            component.columns = count;
            parentGameObject.GetComponent <FlexibleGridLayout>().spacing.x = 2;
        }
        if (splitType == "fixedColumn")
        {
            FlexibleGridLayout component = parentGameObject.GetComponent <FlexibleGridLayout>();
            component.fitType = FlexibleGridLayout.FitType.FixedRows;
            component.rows    = count;
            component.columns = 1;
            parentGameObject.GetComponent <FlexibleGridLayout>().spacing.y = 0;
        }

        parentGameObject.GetComponent <Image>().sprite = black_dotted_sprite;
    }
        public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();
            EditorGUI.BeginChangeCheck();
            FlexibleGridLayout flexibleGridLayout = (FlexibleGridLayout)target;

            flexibleGridLayout.allowOutOfBounds = EditorGUILayout.Toggle(new GUIContent("Allow out of bounds", "Ignores the bounds of the screen for child alignment, In other words if not allowing out of bounds it will behave like unity layout, Means that if the cells are out of bounds it will snap to Upper or Left child alignment"), flexibleGridLayout.allowOutOfBounds);
            flexibleGridLayout.gridPriority     = (GridPriority)EditorGUILayout.EnumPopup("Grid Priority", flexibleGridLayout.gridPriority);
            GUI.enabled                = flexibleGridLayout.gridPriority == GridPriority.FixedRows;
            flexibleGridLayout.rows    = EditorGUILayout.IntField("Rows", flexibleGridLayout.rows);
            GUI.enabled                = true;
            GUI.enabled                = flexibleGridLayout.gridPriority == GridPriority.FixedColumns;
            flexibleGridLayout.columns = EditorGUILayout.IntField("Columns", flexibleGridLayout.columns);
            GUI.enabled                = true;

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Cell Size", GUILayout.Width(65));
            EditorGUILayout.LabelField("", GUILayout.ExpandWidth(true), GUILayout.MaxWidth(50));
            GUI.enabled = !flexibleGridLayout.fitX && !flexibleGridLayout.aspectRatio;
            EditorGUILayout.LabelField("X", GUILayout.Width(8));
            flexibleGridLayout.cellSize.x = EditorGUILayout.FloatField(flexibleGridLayout.cellSize.x, GUILayout.MinWidth(55), GUILayout.Width(55), GUILayout.ExpandWidth(true));
            GUI.enabled = !flexibleGridLayout.fitY && !flexibleGridLayout.aspectRatio;
            EditorGUILayout.LabelField("Y", GUILayout.Width(8));
            flexibleGridLayout.cellSize.y = EditorGUILayout.FloatField(flexibleGridLayout.cellSize.y, GUILayout.MinWidth(50), GUILayout.Width(50), GUILayout.ExpandWidth(true));
            EditorGUILayout.LabelField("", GUILayout.ExpandWidth(true), GUILayout.MinWidth(60), GUILayout.Width(60));
            EditorGUILayout.EndHorizontal();
            GUI.enabled = true;

            flexibleGridLayout.spacing = EditorGUILayout.Vector2Field("Spacing", flexibleGridLayout.spacing);
            flexibleGridLayout.fitX    = EditorGUILayout.Toggle("Fit X", flexibleGridLayout.fitX);
            flexibleGridLayout.fitY    = EditorGUILayout.Toggle("Fit Y", flexibleGridLayout.fitY);
            if (flexibleGridLayout.fitX ^ flexibleGridLayout.fitY)
            {
                flexibleGridLayout.aspectRatio = EditorGUILayout.Toggle("Aspect Ratio", flexibleGridLayout.aspectRatio);
            }

            if (EditorGUI.EndChangeCheck())
            {
                flexibleGridLayout.CalculateLayoutInputHorizontal();
            }
        }
Esempio n. 3
0
 private void OnEnable()
 {
     target = base.target as FlexibleGridLayout;
 }
 private void Awake()
 {
     _flexibleGridLayout = GetComponent <FlexibleGridLayout>();
 }