Ejemplo n.º 1
0
    /// <summary>
    /// 편집 모드 중 Make 모드의 기능을 모아놓은 함수
    /// </summary>
    /// <param name="e">current 를 받기 위한 매개변수</param>
    private void MakeMode(Event e)
    {
        if (isCreate)
        {
            // 선택한 그리드 그리기
            DrawGrid(tileManager.CalcTilePosition(selectX, selectY, t_data.gridInitpos, ref t_data),
                     makegridX, makegridY, Color.blue);

            if (tileManager.GetMouseOnTile(ref gridX, ref gridY,
                                           mousepos, ref t_data))
            {
                // 현재 마우스 포인트 스냅 그리기
                DrawGrid(tileManager.CalcTilePosition(gridX, gridY, t_data.gridInitpos, ref t_data),
                         1, 1, Color.red);
            }
        }
        else
        {
            if (tileManager.GetMouseOnTile(ref gridX, ref gridY,
                                           mousepos, ref t_data))
            {
                DrawGrid(tileManager.CalcTilePosition(gridX, gridY, t_data.gridInitpos, ref t_data),
                         makegridX, makegridY, Color.blue);

                //선택한 그리드 위치 변수에 저장, 오브젝트 생성

                if (e.type == EventType.MouseDown || e.type == EventType.MouseDrag)
                {
                    selectX  = gridX;
                    selectY  = gridY;
                    isCreate = true;

                    GameObject obj  = new GameObject("madeObj");
                    Vector2    temp = tileManager.CalcTilePosition(gridX, gridY, t_data.gridInitpos, ref t_data);
                    temp.y -= t_data.tileHeight;
                    obj.transform.position = temp;
                    obj.tag = "Object";
                    obj.AddComponent <ObjectTile>();


                    GameObject child = new GameObject("ObjSprite");
                    child.transform.parent        = obj.transform;
                    child.transform.localPosition = Vector3.zero;
                    child.AddComponent <SpriteRenderer>();
                }
            }
        }
    }