示例#1
0
文件: LvlBld.cs 项目: KaperDonjon/TNH
    public void F_AddGroup()
    {
        Lvl_BlockGroup n1 = GameObject.Instantiate(GroupPrefab).transform.GetComponent <Lvl_BlockGroup>();

        n1.transform.position = ViewPoint.transform.position;
        n1.transform.parent   = LevelRoot;
        n1.F_SetTile(Core_Base.F_GetTileByID(GroupTileID));

        SetActiveGrp(n1);
    }
示例#2
0
文件: LvlBld.cs 项目: KaperDonjon/TNH
    void SetActiveGrp(Lvl_BlockGroup grp)
    {
        if (MyActvBlockGrp != null)
        {
            MyActvBlockGrp.Actv = false;
        }

        MyActvBlockGrp      = grp;
        MyActvBlockGrp.Actv = true;
    }
示例#3
0
文件: LvlBld.cs 项目: KaperDonjon/TNH
 bool CheckMark(string key)
 {
     foreach (RaycastHit go in AllMarkHits)
     {
         if (go.collider.transform.GetComponent <Mark>().Key == key)
         {
             Lvl_BlockGroup tst = go.collider.transform.GetComponentInParent <Lvl_BlockGroup>();
             if (MyActvBlockGrp == null || MyActvBlockGrp != tst)
             {
                 ToolHit = go;
                 return(true);
             }
         }
     }
     return(false);
 }
示例#4
0
文件: LvlBld.cs 项目: KaperDonjon/TNH
    void Work_GrpControl()
    {
        if (CurEditMode == E_EditModeType.Group)
        {
            if (!GrpInterface.activeSelf)
            {
                GrpInterface.SetActive(true);
                F_BuildListForGroup(LastGrpInd);
            }


            if (MyActvBlockGrp != null)
            {
                if (MyActvBlockGrp.Actv)
                {
                    GroupMarker.transform.position   = MyActvBlockGrp.MyPos - (Vector3.right + Vector3.up) * MyActvBlockGrp.BlockSiz * 0.5f;
                    GroupMarker.transform.localScale = (MyActvBlockGrp.MySiz + Vector3.one) * MyActvBlockGrp.BlockSiz;



                    if (GrpModType == "ReSiz")
                    {
                        MyActvBlockGrp.F_SetSize(ToolPos + MousePosDelta);
                    }
                    if (GrpModType == "RePos")
                    {
                        MyActvBlockGrp.transform.position = ToolPos + SnapToGrid(MousePosDelta);
                    }
                }



                if (Input.GetMouseButtonUp(0))
                {
                    if (GrpModType == "ReSiz")
                    {
                        MyActvBlockGrp.F_ShowGeom();
                    }
                    GrpModType = "Non";
                }
                if (Input.GetMouseButtonDown(0))
                {
                    if (CheckMark("Gico"))
                    {
                        Debug.Log(ToolHit.collider.transform.GetComponent <Mark>().SubKey);

                        MyActvBlockGrp.F_ChangeTileID(ToolHit.collider.transform.GetComponent <Mark>().SubKey);
                        F_BuildListForGroup(ToolHit.collider.transform.GetComponent <Mark>().Num);
                    }
                    else
                    {
                        StrtMousePos = MousePos;
                        if (CheckMark("RePosGroup"))
                        {
                            GrpModType = "RePos";
                            ToolPos    = MyActvBlockGrp.transform.position;
                        }
                        else
                        {
                            if (CheckMark("ReSizeGroup"))
                            {
                                GrpModType = "ReSiz";
                                ToolPos    = MyActvBlockGrp.MySiz;
                            }
                        }
                    }
                }
            }
            else
            {
                if (Input.GetMouseButtonDown(0))
                {
                    if (CheckMark("Gico"))
                    {
                        Debug.Log(ToolHit.collider.transform.GetComponent <Mark>().SubKey);
                        F_BuildListForGroup(ToolHit.collider.transform.GetComponent <Mark>().Num);
                    }
                }

                GroupMarker.transform.position = Vector3.back * 50f;
            }

            if (Input.GetMouseButtonDown(1))
            {
                if (CheckMark("Block"))
                {
                    SetActiveGrp(ToolHit.collider.transform.GetComponentInParent <Lvl_BlockGroup>());
                }
                else
                {
                    if (MyActvBlockGrp != null)
                    {
                        MyActvBlockGrp.Actv = false;
                        MyActvBlockGrp      = null;
                    }
                }
            }


            Vector3 ButPos = Vector3.zero;
            foreach (Mark go in GroupMarker.transform.GetComponentsInChildren <Mark>())
            {
                if (go.Key == "sbut")
                {
                    ButPos = go.transform.position;
                }
            }

            GroupSizeButton.transform.position = ButPos;
        }
        else
        {
            GrpInterface.SetActive(false);
        }
    }