Exemplo n.º 1
0
    public void ModifyOp(GameObject obj, RobotCreated_Operation_Name opName)
    {
        RobotCreated_Operation op = Operations.FindLast(x => x.Op == opName);

        if (op != null)
        {
            op.to_Pos   = obj.transform.localPosition;
            op.to_Rot   = obj.transform.localRotation;
            op.to_Scale = obj.transform.localScale;
        }
    }
Exemplo n.º 2
0
    public void AddOpDelete(Btn_RobotCreated_Choosen choosen)
    {
        Redo_Operations.Clear();
        RedoBtn.interactable = false;
        RobotCreated_Operation op = SetOpInfos(choosen, RobotCreated_Operation_Name.Delete);

        op.tag = tagIndex;
        for (int i = 0; i < Operations.Count; i++)
        {
            if (Operations[i].controlObj == op.controlObj)
            {
                Operations[i].tag = tagIndex;
            }
        }
        tagIndex++;
    }
Exemplo n.º 3
0
    private RobotCreated_Operation SetOpInfos(Btn_RobotCreated_Choosen choosen, RobotCreated_Operation_Name opName)
    {
        if (Operations.Count >= MaxCount)
        {
            Operations.RemoveAt(0);
        }

        if (choosen != null)
        {
            this.GetComponent <Button>().interactable = true;

            GameObject             obj = choosen.myObj;
            RobotCreated_Operation op  = new RobotCreated_Operation();
            op.name         = choosen.myObj.name.Replace("(Clone)", "");
            op.controlObj   = choosen;
            op.Op           = opName;
            op.origin_Pos   = obj.transform.localPosition;
            op.origin_Rot   = obj.transform.localRotation;
            op.origin_Scale = obj.transform.localScale;
            Operations.Add(op);
            return(op);
        }
        return(null);
    }
Exemplo n.º 4
0
    public void Undo()  //Undo
    {
        if (Operations.Count <= 0)
        {
            return;
        }

        RobotCreated_Operation op = Operations[Operations.Count - 1];

        switch (op.Op)
        {
        case RobotCreated_Operation_Name.Create:
            if (op.controlObj != null)
            {
                root.DeleteObjSpecial(op.controlObj);
            }
            break;

        case RobotCreated_Operation_Name.Copy:
            if (op.controlObj != null)
            {
                root.DeleteObjSpecial(op.controlObj);
            }
            break;

        case RobotCreated_Operation_Name.Delete:
            if (op.name != "")
            {
                Btn_RobotCreated_Choosen choosen = root.CreateChoosenBtn(op.name);
                choosen.myObj.transform.localPosition = op.origin_Pos;
                choosen.myObj.transform.localRotation = op.origin_Rot;
                choosen.myObj.transform.localScale    = op.origin_Scale;

                for (int i = 0; i < Operations.Count; i++)
                {
                    if (Operations[i].tag == op.tag)
                    {
                        Operations[i].controlObj = choosen;
                    }
                }
            }
            break;

        case RobotCreated_Operation_Name.Move:
            if (op.controlObj != null && op.controlObj.myObj != null)
            {
                op.controlObj.myObj.transform.localPosition = op.origin_Pos;
            }
            break;

        case RobotCreated_Operation_Name.Resize:
            if (op.controlObj != null && op.controlObj.myObj != null)
            {
                op.controlObj.myObj.transform.localScale = op.origin_Scale;
            }
            break;

        case RobotCreated_Operation_Name.Rotate:
            if (op.controlObj != null && op.controlObj.myObj != null)
            {
                op.controlObj.myObj.transform.localRotation = op.origin_Rot;
            }
            break;
        }

        if (Redo_Operations.Count >= Redo_MaxCount)
        {
            Redo_Operations.RemoveAt(0);
        }
        Redo_Operations.Add(op);
        RedoBtn.interactable = true;

        Operations.Remove(op);

        if (Operations.Count <= 0)
        {
            this.gameObject.GetComponent <Button>().interactable = false;
        }
    }