Ejemplo n.º 1
0
 //Add Column
 public void AddColumn()
 {
     if (gridManager.cols < 7)
     {
         spriteRenderer.size = spriteRenderer.size + columnvector;
         gridManager.cols   += 1;
         gridManager.GenerateGrid();
     }
 }
Ejemplo n.º 2
0
    public override void OnInspectorGUI()
    {
        GridManager map = target as GridManager;

        if (DrawDefaultInspector())
        {
            map.GenerateGrid();
        }

        if (GUILayout.Button("Generate Map"))
        {
            map.GenerateGrid();
        }
    }
Ejemplo n.º 3
0
    public void Initiate()
    {
        TheHunter       = Instantiate(HunterPrefab, new Vector3(0f, 3f, 0f), Quaternion.identity);
        TheHunter.Speed = HunterSpeed;

        TheGridManager.GenerateGrid(false);
        hunterVisionGrids = new List <Vector2Int>();
        monsterObjs       = new List <Monster>();

        for (int i = 0; i < InitialMonster; i++)
        {
            SpawnMonster();
        }

        if (HumanControlEnabled)
        {
            GameObject hunterCtlObj = new GameObject("HunterController");
            hunterCtlObj.transform.parent = transform;
            hunterController = hunterCtlObj.AddComponent <HunterController>();
            hunterController.ProjectileDistance = HunterProjectileDistance;
            hunterController.ProjectileSpeed    = HunterProjectileSpeed;
            hunterController.IsEnabled          = HumanControlEnabled;
            hunterController.TheHunter          = TheHunter;
        }

        if (SdkAiEnabled)
        {
            hunterSDK = new HunterSDK <State, StepResponse>(this, SdkHost);
            hunterSDK.Initiate();
            InvokeRepeating("Step", 2.0f, SdkStepInterval);
        }

        initiated = true;
    }
Ejemplo n.º 4
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        GridManager gridManager = target as GridManager;

        gridManager.GenerateGrid(true);
    }
Ejemplo n.º 5
0
    void GenerateGrid(string text)
    {
        string[] splitted = text.Split(',');
        int      x        = int.Parse(splitted[0]);
        int      y        = int.Parse(splitted[1]);

        TheGridManager.mapSize = new Vector2Int(x, y);
        TheGridManager.GenerateGrid(false);
    }
 public override void OnInspectorGUI()
 {
     base.OnInspectorGUI();
     if (GUILayout.Button("Generate Grid"))
     {
         p_target.GenerateGrid();
     }
     if (GUILayout.Button("Clear Grid"))
     {
         p_target.ClearGrid();
     }
 }
Ejemplo n.º 7
0
    public override void OnInspectorGUI()
    {
        GridManager myTarget = (GridManager)target;

        DrawDefaultInspector();
        if (GUILayout.Button("Generate Grid"))
        {
            myTarget.GenerateGrid();
        }

        //myTarget.experience = EditorGUILayout.IntField("Experience", myTarget.experience);
        //EditorGUILayout.LabelField("Level", myTarget.Level.ToString());
    }
    public override void OnInspectorGUI()
    {
        GridManager gridManager = (GridManager)target;

        if (DrawDefaultInspector())
        {
            if (gridManager.autoUpdate)
            {
                gridManager.GenerateGrid();
            }
        }

        if (GUILayout.Button("Generate Grid"))
        {
            gridManager.GenerateGrid();
        }

        if (GUILayout.Button("Clear Grid"))
        {
            gridManager.ClearGrid();
        }
    }
Ejemplo n.º 9
0
    // Start is called before the first frame update
    void Start()
    {
        //TODO
        //CREATE GRID MANAGER ON START
        //CREATE REFERENCE

        //GameObject grid = new GameObject("Grid Manager");
        //grid.AddComponent<GridManager>();

        gridManager = GameObject.FindObjectOfType <GridManager>().GetComponent <GridManager>();
        gridManager.GenerateGrid();

        ClientSend.RequestPlayer();
        ClientSend.PlayerSuccessfullyLoadedGame();
        //Camera.main.transform.position = new Vector3((int)(gridManager.GetGridDimensions().x / 2), gridManager.GetGridDimensions().x + gridManager.GetGridDimensions().y, (int)(gridManager.GetGridDimensions().y / 2));
    }
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        GridManager grid = (GridManager)target;


        if (GUILayout.Button("Generate Grid"))
        {
            grid.GenerateGrid();
            Debug.Log("generate");
        }

        if (GUI.changed)
        {
            grid.UpdateGrid();
        }
    }
Ejemplo n.º 11
0
        // Generate the real level object which will be played by the player. Generates cells and grids.
        void GenerateLevel()
        {
            if (objList.ToArray().Length != 0)
            {
                DestroyImmediate(oldLevel);
                Transform newParent = new GameObject().transform;
                newParent.name = myProperties.levelName;
                int i = 0;

                MyGrid[] grids = FindObjectsOfType <MyGrid>();
                int      j     = 0;
                if (grids.Length != 0)
                {
                    while (j != grids.Length)
                    {
                        grids[j].DestroyMe();
                        j++;
                    }
                }


                foreach (GameObject item in objList)
                {
                    GameObject newObj = Instantiate(item, item.transform.position, Quaternion.identity);

                    newObj.name = "Cell-" + i;
                    CellProperty tempCellProp = newObj.AddComponent <CellProperty>();
                    tempCellProp.explosionParticle             = myProperties.explosionParticle;
                    tempCellProp.gameOverExplosion             = myProperties.gameOverExplosionParticle;
                    tempCellProp.borderObject                  = Instantiate(myProperties.borderObject, tempCellProp.transform.position, Quaternion.identity);
                    tempCellProp.borderObject.transform.parent = newObj.transform;

                    tempCellProp.color       = item.GetComponent <SpriteRenderer>().color;
                    tempCellProp.currentGrid = gridProp.GenerateGrid(newObj.transform.position, i, newObj.GetComponent <CellProperty>());
                    newObj.transform.SetParent(newParent);
                    i++;
                }
                oldLevel = newParent.gameObject;
            }
        }
Ejemplo n.º 12
0
 private void Start()
 {
     Debug.Log(Camera.main.pixelWidth);
     gridManager.GenerateGrid();
 }
Ejemplo n.º 13
0
 public void InitiateTrackGeneration()
 {
     gridManager.GenerateGrid(/*dataManager.currentLevelData.layoutList,*/ dataManager.currentLevelData.tracks, dataManager.currentLevelData.components);
 }
Ejemplo n.º 14
0
    static void GenerateHexGrid(GridManager gm, _TileType tileType)
    {
        if(tileType==_TileType.Square){
            gm.width=8;
            gm.length=8;
        }

        //clear previous tile
        Tile[] allTilesInScene=(Tile[])FindObjectsOfType(typeof(Tile));
        foreach(Tile tile in allTilesInScene){
            if(tile.unit!=null) DestroyImmediate(tile.unit.gameObject);
            DestroyImmediate(tile);
        }
        /*
        for(int i=0; i<gm.allTiles.Count; i++){
            if(gm.allTiles[i]!=null){
                if(gm.allTiles[i].unit!=null) DestroyImmediate(gm.allTiles[i].unit.gameObject);
                DestroyImmediate(gm.allTiles[i].gameObject);
            }
        }
        gm.allTiles=new List<Tile>();
        */

        gm.type=tileType;
        if(gm.type==_TileType.Square) GridManagerEditor.GenerateSquareGrid(gm);
        else if(gm.type==_TileType.Hex) GridManagerEditor.GenerateHexGrid(gm);

        allTilesInScene=(Tile[])FindObjectsOfType(typeof(Tile));
        List<Tile> tileList=new List<Tile>();
        foreach(Tile tile in allTilesInScene){
            tileList.Add(tile);
        }
        for(int i=0; i<tileList.Count; i++) tileList[i].gameObject.layer=8;

        //set neighbour
        for(int i=0; i<tileList.Count; i++){
            Tile hT=tileList[i];
            Vector3 pos=hT.transform.position;
            Collider[] cols=Physics.OverlapSphere(pos, gm.gridSize*gm.gridToTileSizeRatio*0.6f);
            List<Tile> neighbour=new List<Tile>();
            foreach(Collider col in cols){
                Tile hTile=col.gameObject.GetComponent<Tile>();
                if(hTile!=null && hT!=hTile){
                    neighbour.Add(hTile);
                }
            }
            hT.SetNeighbours(neighbour);
        }

        gm.GenerateGrid(false);
    }
Ejemplo n.º 15
0
    static void GenerateHexGrid(GridManager gm, _TileType tileType)
    {
        if (tileType == _TileType.Square)
        {
            gm.width  = 8;
            gm.length = 8;
        }

        //clear previous tile
        Tile[] allTilesInScene = (Tile[])FindObjectsOfType(typeof(Tile));
        foreach (Tile tile in allTilesInScene)
        {
            if (tile.unit != null)
            {
                DestroyImmediate(tile.unit.gameObject);
            }
            DestroyImmediate(tile);
        }

        /*
         * for(int i=0; i<gm.allTiles.Count; i++){
         *      if(gm.allTiles[i]!=null){
         *              if(gm.allTiles[i].unit!=null) DestroyImmediate(gm.allTiles[i].unit.gameObject);
         *              DestroyImmediate(gm.allTiles[i].gameObject);
         *      }
         * }
         * gm.allTiles=new List<Tile>();
         */

        gm.type = tileType;
        if (gm.type == _TileType.Square)
        {
            GridManagerEditor.GenerateSquareGrid(gm);
        }
        else if (gm.type == _TileType.Hex)
        {
            GridManagerEditor.GenerateHexGrid(gm);
        }

        allTilesInScene = (Tile[])FindObjectsOfType(typeof(Tile));
        List <Tile> tileList = new List <Tile>();

        foreach (Tile tile in allTilesInScene)
        {
            tileList.Add(tile);
        }
        for (int i = 0; i < tileList.Count; i++)
        {
            tileList[i].gameObject.layer = 8;
        }

        //set neighbour
        for (int i = 0; i < tileList.Count; i++)
        {
            Tile        hT        = tileList[i];
            Vector3     pos       = hT.transform.position;
            Collider[]  cols      = Physics.OverlapSphere(pos, gm.gridSize * gm.gridToTileSizeRatio * 0.6f);
            List <Tile> neighbour = new List <Tile>();
            foreach (Collider col in cols)
            {
                Tile hTile = col.gameObject.GetComponent <Tile>();
                if (hTile != null && hT != hTile)
                {
                    neighbour.Add(hTile);
                }
            }
            hT.SetNeighbours(neighbour);
        }

        gm.GenerateGrid(false);
    }
Ejemplo n.º 16
0
    // Start is called before the first frame update
    public void GenerateModel(string filename)
    {
        if (File.Exists(filename))
        {
            using (BinaryReader reader = new BinaryReader(File.Open(filename, FileMode.Open)))
            {
                int n_strand = reader.ReadInt32();
                n_rendered_strand = 0;
                //Vector3[][] strands = new Vector3[][n_strand];
                int   n_exclude_vertex = 0;
                int   n_vertex = 0; // 1024
                int   n_rendered_vertex = 0;
                int   strand_count = 0;
                int   skip_factor = 2;
                float x = 0.0f, y = 0.0f, z = 0.0f;
                float cx = 0f, cy = 0.0f, cz = 0.00f;      // default camera center
                float hx = 0.005f, hy = 1.75f, hz = 0.01f; // default scalp center
                for (int i = 0; i < n_strand; i++)
                {
                    n_vertex          = reader.ReadInt32();
                    n_rendered_vertex = n_vertex - n_exclude_vertex;
                    if (n_rendered_vertex >= 0)
                    {
                        Vector3[] vertices = new Vector3[n_rendered_vertex / skip_factor];

                        strandCkpt.Add(new Vector3(0, 0, 0)); // 두피 좌표 (첫 점)

                        int vertex_count = 0;
                        for (int j = 0; j < n_rendered_vertex; j++)
                        {
                            x = reader.ReadSingle();
                            y = reader.ReadSingle();
                            z = reader.ReadSingle();

                            if (j % skip_factor == 0 && vertex_count < n_rendered_vertex / skip_factor)
                            {
                                x = x + cx - hx;
                                y = y + cy - hy;
                                z = z + cz - hz;
                                vertices[vertex_count] = new Vector3(x, y, z);
                                vertex_count++;
                                // update max, min
                                max_x = Math.Max(max_x, x);
                                min_x = Math.Min(min_x, x);
                                max_y = Math.Max(max_y, y);
                                min_y = Math.Min(max_y, y);
                                max_z = Math.Max(max_z, z);
                                min_z = Math.Min(max_z, z);

                                // strand별 ckpt(grid 선택을 위한) 설정
                                if (j == 0)
                                {
                                    strandCkpt[strandCkpt.Count - 1] = new Vector3(x, y, z);
                                }
                                if (j == 20)
                                {
                                    strandCkpt[strandCkpt.Count - 1] = new Vector3(x, y, z);
                                }
                                if (j == 35)
                                {
                                    strandCkpt[strandCkpt.Count - 1] = new Vector3(x, y, z);
                                }
                            }
                        }
                        for (int j = n_rendered_vertex; j < n_vertex; j++)
                        {
                            x = reader.ReadSingle();
                            y = reader.ReadSingle();
                            z = reader.ReadSingle();
                        }

                        // 수정함 : 모든 Strand 렌더링.

                        DrawAndSaveStrand(vertices, n_rendered_vertex / skip_factor, strand_count);
                        strand_count++;
                    }
                    else
                    {
                        for (int j = 0; j < n_vertex; j++)
                        {
                            x = reader.ReadSingle();
                            y = reader.ReadSingle();
                            z = reader.ReadSingle();
                        }
                    }
                }

                float dx = (max_x - min_x) / 2;
                float dy = (max_y - min_y) / 2;
                float dz = (max_z - min_z) / 2;
                gridManager.GenerateGrid(min_x - dx, max_x + dx, min_y - dy, max_y + dy, min_z - dz, max_z + dz);
            }
        }
        else
        {
            Debug.Log("file not found");
        }
    }
Ejemplo n.º 17
0
    private void Start()
    {
        GridManager gm = new GridManager();

        gm.GenerateGrid();
    }
Ejemplo n.º 18
0
    void GenerateGrid()
    {
        /*
         * DateTime timeS;
         * DateTime timeE;
         * TimeSpan timeSpan;
         * timeS=System.DateTime.Now;
         */

        /*
         * timeE=System.DateTime.Now;
         * timeSpan=timeE-timeS;
         * Debug.Log( "Time:"+timeSpan.TotalMilliseconds);
         *
         * return;
         */

        //clear previous tile
        Tile[] allTilesInScene = (Tile[])FindObjectsOfType(typeof(Tile));
        foreach (Tile tile in allTilesInScene)
        {
            if (tile.unit != null)
            {
                DestroyImmediate(tile.unit.gameObject);
            }
            if (tile.obstacle != null)
            {
                DestroyImmediate(tile.obstacle.gameObject);
            }
            if (tile.collectible != null)
            {
                DestroyImmediate(tile.collectible.gameObject);
            }

            DestroyImmediate(tile.gameObject);
        }
        //Tile[] allTilesInScenes=(Tile[])FindObjectsOfType(typeof(Tile));

        /*
         * for(int i=0; i<tileList.Count; i++){
         *      if(tileList[i]!=null){
         *              if(tileList[i].unit!=null) DestroyImmediate(tileList[i].unit.gameObject);
         *              DestroyImmediate(tileList[i].gameObject);
         *      }
         * }
         * tileList=new List<Tile>();
         */

        List <Tile> tileList = new List <Tile>();

        if (gm.type == _TileType.Square)
        {
            tileList = GenerateSquareGrid();
        }
        else if (gm.type == _TileType.Hex)
        {
            tileList = GenerateHexGrid();
        }


        /*
         * mould the grid to the height of the terrain
         * foreach(Tile hTile in tileList){
         *      Vector3 pos=new Vector3(hTile.pos.x, hTile.pos.y+gm.maxHeight, hTile.pos.z);
         *      RaycastHit hit;
         *
         *      bool flag=Physics.Raycast(pos, Vector3.down, out hit, gm.maxHeight+10);
         *
         *      if(flag) pos.y=hit.point.y+0.1f;
         *      else pos.y=gm.baseHeight;
         *
         *      hTile.pos=pos;
         *      hTile.transform.position=pos;
         * }
         */


        //set unwalkable tile
        int blockTile = (int)(tileList.Count * gm.unwalkableRate);

        if (blockTile > 0)
        {
            int count = 0;
            while (count < blockTile)
            {
                int rand = UnityEngine.Random.Range(0, tileList.Count);
                while (!tileList[rand].walkable || tileList[rand].unit != null)
                {
                    rand = UnityEngine.Random.Range(0, tileList.Count);
                }

                if (!gm.useObstacle)
                {
                    tileList[rand].walkable = false;
                    tileList[rand].Start();
                }
                else
                {
                    int offset = 0;
                    if (gm.enableInvUnwalkable)
                    {
                        offset += 1;
                    }
                    if (gm.enableVUnwalkable)
                    {
                        offset += 1;
                    }

                    int randT = UnityEngine.Random.Range(0, gm.obstaclePrefabList.Count + offset);

                    if (!gm.enableInvUnwalkable && !gm.enableVUnwalkable)
                    {
                    }

                    if (randT < offset)
                    {
                        if (gm.enableInvUnwalkable && randT == 0)
                        {
                            tileList[rand].SetToUnwalkable(false);
                        }
                        else
                        {
                            tileList[rand].SetToUnwalkable(true);
                        }
                    }
                    else
                    {
                        GameObject obsObj = (GameObject)PrefabUtility.InstantiatePrefab(gm.obstaclePrefabList[randT - offset].gameObject);
                        obsObj.transform.localScale             *= gm.gridSize;
                        obsObj.transform.parent                  = tileList[rand].transform;
                        obsObj.transform.localPosition           = Vector3.zero;
                        obsObj.GetComponent <Collider>().enabled = false;
                        Obstacle obs = obsObj.GetComponent <Obstacle>();
                        tileList[rand].obstacle = obs;
                        obs.occupiedTile        = tileList[rand];
                        tileList[rand].SetToUnwalkable(false);
                    }
                }

                count += 1;
            }
        }

        for (int i = 0; i < tileList.Count; i++)
        {
            tileList[i].gameObject.layer = 8;
        }

        //set neighbour
        for (int i = 0; i < tileList.Count; i++)
        {
            Tile        hT        = tileList[i];
            Vector3     pos       = hT.transform.position;
            Collider[]  cols      = Physics.OverlapSphere(pos, gm.gridSize * gm.gridToTileSizeRatio * 0.6f);
            List <Tile> neighbour = new List <Tile>();
            foreach (Collider col in cols)
            {
                Tile hTile = col.gameObject.GetComponent <Tile>();
                if (hTile != null && hT != hTile)
                {
                    neighbour.Add(hTile);
                }
            }
            hT.SetNeighbours(neighbour);
        }

        if (gm.addColletible && gm.collectiblePrefabList.Count > 0)
        {
            int ccount = UnityEngine.Random.Range(gm.minCollectibleCount, gm.maxCollectibleCount);

            if (ccount > 0)
            {
                List <Tile> emptyTiles = new List <Tile>();
                for (int i = 0; i < tileList.Count; i++)
                {
                    if (tileList[i].walkable)
                    {
                        emptyTiles.Add(tileList[i]);
                    }
                }
                for (int i = 0; i < ccount; i++)
                {
                    int rand = UnityEngine.Random.Range(0, emptyTiles.Count);

                    int        randID = UnityEngine.Random.Range(0, gm.collectiblePrefabList.Count);
                    GameObject colObj = (GameObject)PrefabUtility.InstantiatePrefab(gm.collectiblePrefabList[randID].gameObject);
                    colObj.transform.parent        = emptyTiles[rand].transform;
                    colObj.transform.localPosition = Vector3.zero;
                    colObj.transform.rotation      = Quaternion.Euler(0, UnityEngine.Random.Range(0, 6) * 60, 0);

                    CollectibleTB col = colObj.GetComponent <CollectibleTB>();
                    emptyTiles[rand].collectible = col;
                    col.occupiedTile             = emptyTiles[rand];

                    emptyTiles.RemoveAt(rand);
                    if (emptyTiles.Count == 0)
                    {
                        break;
                    }
                }
            }
        }

        GenerateUnit();

        gm.GenerateGrid(false);

        /*
         * timeE=System.DateTime.Now;
         * timeSpan=timeE-timeS;
         * //Debug.Log(counter+" tiles has been generated    Time:"+timeSpan.TotalMilliseconds);
         */
    }
Ejemplo n.º 19
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        GridManager gridManager = (GridManager)target;

        #region Scriptable tile selector
        GUILayout.BeginHorizontal();

        GUILayout.BeginVertical();
        GUILayout.Space(58);
        if (GUILayout.Button("<<", GUILayout.ExpandWidth(false)))
        {
            //TODO
        }
        GUILayout.Space(58);
        GUILayout.EndVertical();

        gridManager.texture = (Texture)EditorGUILayout.ObjectField("", gridManager.texture, typeof(Texture), false, GUILayout.Height(128));

        GUILayout.BeginVertical();
        GUILayout.Space(58);
        if (GUILayout.Button(">>", GUILayout.ExpandWidth(false)))
        {
            //TODO
        }
        GUILayout.Space(58);
        GUILayout.EndVertical();

        GUILayout.EndHorizontal();
        #endregion

        #region Grid generation controls
        GUILayout.BeginHorizontal();
        if (GUILayout.Button("Generate Grid", GUILayout.ExpandWidth(false)))
        {
            gridManager.GenerateGrid();
        }
        if (GUILayout.Button("Toggle Grid Helper", GUILayout.ExpandWidth(false)))
        {
            gridManager.ToggleGridHelper();
        }
        if (GUILayout.Button("Generate Tiles", GUILayout.ExpandWidth(false)))
        {
            gridManager.GenerateTiles();
        }
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        if (GUILayout.Button("Destroy Tiles", GUILayout.ExpandWidth(false)))
        {
            gridManager.DestroyTiles();
        }
        if (GUILayout.Button("Dlt Save", GUILayout.ExpandWidth(false)))
        {
            gridManager.DeleteSaveFile();
        }
        if (GUILayout.Button("Save Grid", GUILayout.ExpandWidth(false)))
        {
            gridManager.SaveGridDatatoJson();
        }
        if (GUILayout.Button("Load Grid", GUILayout.ExpandWidth(false)))
        {
            gridManager.LoadGridDataFromJson();
        }
        GUILayout.EndHorizontal();
        #endregion
    }
Ejemplo n.º 20
0
 public void GenerateGrid()
 {
     m_gridManager.GenerateGrid();
     // TODO aherrera : take out that stupid parameter
     m_gridManager.PositionGrid(Vector3.zero, m_gridManager._debugSpacing);
 }