public void ObjArrayControll(ref GameObject[] targetArray, EditorDirect direction, EditorAct action,
                                 GameObject newObj = null)
    {
        var tmpList = new List <GameObject>();

        if (action == EditorAct.Add)
        {
            tmpList.AddRange(targetArray);
            if (direction == EditorDirect.Up)
            {
                tmpList.Insert(0, newObj);
            }
            else
            {
                tmpList.Add(newObj);
            }
        }
        else if (action == EditorAct.Remove)
        {
            tmpList.AddRange(targetArray);
            if (direction == EditorDirect.Up)
            {
                tmpList.RemoveAt(0);
            }
            else
            {
                tmpList.RemoveAt(tmpList.Count - 1);
            }
        }

        targetArray = tmpList.ToArray();
    }
    public void AdjustPositionObj(ref GameObject[] editTarget, EditorDirect direction, EditorAct editorAct,
                                  GameObject newObj = null)
    {
        if (editorAct == EditorAct.Add)
        {
            int oneStepBack = 1;
            int samplingNum = (direction == EditorDirect.Up) ? 0 + oneStepBack : editTarget.Length - 1 - oneStepBack;

            Vector2 vec = editTarget [samplingNum].transform.localPosition;
            vec = new Vector2(vec.x, vec.y + (oneLineDistance * (int)direction));
            newObj.transform.localPosition = vec;

            float adjust = (direction == EditorDirect.Up) ? -1 * (oneLineDistance / 2) : 1 * oneLineDistance / 2;
            foreach (var item in editTarget)
            {
                item.transform.localPosition = new Vector3(item.transform.localPosition.x,
                                                           item.transform.localPosition.y + adjust,
                                                           item.transform.localPosition.z);
            }
        }
        else if (editorAct == EditorAct.Remove)
        {
            float adjust = (direction == EditorDirect.Up) ? 1 * (oneLineDistance / 2) : -1 * oneLineDistance / 2;
            foreach (var item in editTarget)
            {
                item.transform.localPosition = new Vector3(item.transform.localPosition.x,
                                                           item.transform.localPosition.y + adjust,
                                                           item.transform.localPosition.z);
            }
        }
    }
    public void DeleteLineObj(ref GameObject[] targetObj, EditorDirect direction, GameObject parentObj)
    {
        int index = (direction == EditorDirect.Up) ? 0 : targetObj.Length - 1;

        Destroy(targetObj [index]);

        ObjArrayControll(ref targetObj, direction, EditorAct.Remove);

        AdjustPositionObj(ref targetObj, direction, EditorAct.Remove);

        RenameGameobjectName(ref targetObj, direction);
    }
    public void CreateLineObj(ref GameObject[] targetObj, EditorDirect direction, GameObject parentObj,
                              GameObject initData)
    {
        GameObject newObj = Instantiate(initData) as GameObject;

        newObj.transform.parent = parentObj.transform;

        newObj.transform.localScale = new Vector3(1, 1, 1);

        ObjArrayControll(ref targetObj, direction, EditorAct.Add, newObj);

        AdjustPositionObj(ref targetObj, direction, EditorAct.Add, newObj);

        RenameGameobjectName(ref targetObj, direction);
    }
    public void _ChangeTextDetailNewObj(ref GameObject[] target, EditType editType, EditorDirect direction)
    {
        int oneStepBack = 1;
        int samplingNum = (direction == EditorDirect.Up) ? 0 + oneStepBack  : target.Length - 1 - oneStepBack;
        int targetNum   = (direction == EditorDirect.Up) ? 0 : target.Length - 1;

        switch (editType)
        {
        case EditType.Text:
            string str = target[samplingNum].GetComponent <Text>().text;

            target[targetNum].GetComponent <Text>().text = str;           // + "_Add";
            break;
        }
    }
    public void RenameGameobjectName(ref GameObject[] editTarget, EditorDirect direction)
    {
        string[] objName = editTarget [0].name.Split('_');
        if (objName [0].Contains("(Clone)") == true)
        {
            objName[0] = objName[0].Replace("(Clone)", "");
        }

        int num = 1;

        foreach (var item in editTarget)
        {
            item.name = objName[0] + "_" + num;
            num++;
        }
    }
    public void LineEdit(EditorDirect direction, EditorAct action)
    {
        if (action == EditorAct.Add)
        {
            CreateLineObj(ref editButton, ref baseFrameObj.button, direction, addPartsOfFrameObj[(int)PartsOfFrame.Button]);
            ChangeColorNewObj(ref editButton, ref baseFrameObj.button, EditType.Button, direction);

            CreateLineObj(ref editText, ref baseFrameObj.text, direction, addPartsOfFrameObj[(int)PartsOfFrame.LineText]);
            ChangeColorNewObj(ref editText, ref baseFrameObj.text, EditType.Text, direction);
            ChangeTextDetailNewObj(ref editText, ref baseFrameObj.text, EditType.Text, direction);

            editMethods.CreateLineObj(ref baseFrameObj.inputField, direction, baseObj.gameObject, addPartsOfFrameObj[(int)PartsOfFrame.InputField]);

            ModifyFrame(true);

            RemoveEditButtonComponents();
            SetAddListener();

            SetBaseRenameButton();
            SetSiblingBaseObj();

            ModifyLineNum(true);
            ChangeColorAllowPos();
        }
        else if (action == EditorAct.Remove)
        {
            DeleteLineObj(ref editButton, ref baseFrameObj.button, direction);

            DeleteLineObj(ref editText, ref baseFrameObj.text, direction);

            editMethods.DeleteLineObj(ref baseFrameObj.inputField, direction, baseObj.gameObject);

            ModifyFrame(false);

            SetAddListener();

            SetSiblingBaseObj();

            ModifyLineNum(false);
            ChangeColorAllowPos();
        }
    }
    private void _ChangeColorNewObj(ref GameObject[] target, EditType editType, EditorDirect direction)
    {
        int oneStepBack = 1;
        int samplingNum = (direction == EditorDirect.Up) ? 0 + oneStepBack  : target.Length - 1 - oneStepBack;
        int targetNum   = (direction == EditorDirect.Up) ? 0 : target.Length - 1;

        switch (editType)
        {
        case EditType.Text:
            Color32 copyColor = target[samplingNum].GetComponent <Text>().color;

            target[targetNum].GetComponent <Text>().color = copyColor;
            break;

        case EditType.Button:
            ColorBlock colorBlock = target[samplingNum].GetComponent <Button>().colors;

            target[targetNum].GetComponent <Button>().colors = colorBlock;
            break;
        }
    }
Example #9
0
    public void LineEdit(EditorDirect direction, EditorAct action)
    {
        if (action == EditorAct.Add)
        {
            editMethods.CreateLineObj(ref button, direction, this.gameObject, PartsOfFrameObj[(int)PartsOfFrame.Button]);
            editMethods.CreateLineObj(ref text, direction, this.gameObject, PartsOfFrameObj[(int)PartsOfFrame.LineText]);
            editMethods.CreateLineObj(ref inputField, direction, this.gameObject, PartsOfFrameObj[(int)PartsOfFrame.InputField]);

            editMethods.ModifyFrame(this.gameObject.GetComponent <RectTransform> (), isPlus: true);

            SetBaseRenameButton();
            SetSiblingBaseObj();
        }
        else if (action == EditorAct.Remove)
        {
            editMethods.DeleteLineObj(ref button, direction, this.gameObject);
            editMethods.DeleteLineObj(ref text, direction, this.gameObject);
            editMethods.DeleteLineObj(ref inputField, direction, this.gameObject);

            editMethods.ModifyFrame(this.gameObject.GetComponent <RectTransform> (), isPlus: false);

            SetSiblingBaseObj();
        }
    }
 private void ChangeTextDetailNewObj(ref GameObject[] editTarget, ref GameObject[] baseTarget,
                                     EditType editType, EditorDirect direction)
 {
     editMethods._ChangeTextDetailNewObj(ref editTarget, editType, direction);
     editMethods._ChangeTextDetailNewObj(ref baseTarget, editType, direction);
 }
 private void ChangeColorNewObj(ref GameObject[] editTarget, ref GameObject[] baseTarget,
                                EditType editType, EditorDirect direction)
 {
     _ChangeColorNewObj(ref editTarget, editType, direction);
     _ChangeColorNewObj(ref baseTarget, editType, direction);
 }
 private void DeleteLineObj(ref GameObject[] editTargetArray, ref GameObject[] baseTargetArray,
                            EditorDirect direction)
 {
     editMethods.DeleteLineObj(ref editTargetArray, direction, this.gameObject);
     editMethods.DeleteLineObj(ref baseTargetArray, direction, baseObj.gameObject);
 }
 private void CreateLineObj(ref GameObject[] editTargetArray, ref GameObject[] baseTargetArray,
                            EditorDirect direction, GameObject initData)
 {
     editMethods.CreateLineObj(ref editTargetArray, direction, this.gameObject, initData);
     editMethods.CreateLineObj(ref baseTargetArray, direction, baseObj.gameObject, initData);
 }