Exemplo n.º 1
0
 public void DeleteObjSpecial(Btn_RobotCreated_Choosen choosebtn)   //using in withdraw
 {
     if (choosebtn != null)
     {
         Destroy(choosebtn.gameObject);
         ChoosenBtns.Remove(choosebtn);
         RerangeChoosenBtn();
     }
 }
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
    public Btn_RobotCreated_Choosen CreateChoosenBtn(string objName)
    {
        //Create Obj
        GameObject myObj = Instantiate(Resources.Load <GameObject>("RobotComponents/" + objName));

        myObj.transform.parent        = robot_create.transform;
        myObj.transform.localPosition = Vector3.zero;

        //Set Outline
        GameObject outlineObj = Instantiate(Resources.Load <GameObject>("RobotComponents/" + objName));

        outlineObj.name                    = "Outline";
        outlineObj.transform.parent        = myObj.transform;
        outlineObj.transform.localPosition = Vector3.zero;
        if (outlineObj.GetComponent <Renderer>() != null)
        {
            Material[] mats = outlineObj.GetComponent <Renderer>().sharedMaterials;
            for (int i = 0; i < mats.Length; i++)
            {
                mats[i] = outlineMat;
            }
            outlineObj.GetComponent <Renderer>().sharedMaterials = mats;
        }
        foreach (Renderer r in outlineObj.GetComponentsInChildren <Renderer>())
        {
            Material[] mats = r.sharedMaterials;
            for (int i = 0; i < mats.Length; i++)
            {
                mats[i] = outlineMat;
            }
            r.sharedMaterials = mats;
        }
        outlineObj.SetActive(false);

        //Create Choose Btn
        GameObject choosenBtn        = Instantiate(Resources.Load <GameObject>("UI/ChooseButton"), ChoosenBtnTap.transform);
        Sprite     tex               = Resources.Load <Sprite>("RobotComponents/UI/Thumbnail_" + objName);
        Btn_RobotCreated_Choosen btn = choosenBtn.GetComponent <Btn_RobotCreated_Choosen>();

        btn.Inst(myObj, ChoosenBtns.Count, tex, this);
        ChoosenBtns.Add(btn);

        RerangeChoosenBtn();
        return(btn);
    }
Exemplo n.º 4
0
    //CopyControl
    public void CopyObj()
    {
        if (root.cntControlObj == null)
        {
            root.ShowTip();
        }
        else
        {
            GameObject obj = root.cntControlObj;
            Btn_RobotCreated_Choosen btn = root.CreateChoosenBtn(obj.name.Replace("(Clone)", ""));
            GameObject copyObj           = btn.myObj;
            copyObj.transform.localPosition = obj.transform.localPosition;
            copyObj.transform.localRotation = obj.transform.localRotation;
            copyObj.transform.localScale    = obj.transform.localScale;

            root.withdrawBtn.AddOp(btn, RobotCreated_Operation_Name.Copy);
        }
    }
Exemplo n.º 5
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.º 6
0
    public void OnClick()
    {
        Btn_RobotCreated_Choosen choosen = root.CreateChoosenBtn(compName);

        root.withdrawBtn.AddOp(choosen, RobotCreated_Operation_Name.Create);
    }
Exemplo n.º 7
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;
        }
    }
Exemplo n.º 8
0
    private RobotCreated_Operation SetOpInfos(GameObject obj, RobotCreated_Operation_Name opName)
    {
        Btn_RobotCreated_Choosen choosen = root.ChoosenBtns.Find(x => x.myObj == obj);

        return(SetOpInfos(choosen, opName));
    }
Exemplo n.º 9
0
 public void AddOp(Btn_RobotCreated_Choosen choosen, RobotCreated_Operation_Name opName)
 {
     SetOpInfos(choosen, opName);
     Redo_Operations.Clear();
     RedoBtn.interactable = false;
 }