コード例 #1
0
 public void SetTarget(int x, int y)
 {
     if (prefferedTarget == null)
     {
         test            = true;
         prefferedTarget = new Point(x, y);
         Debug.Log(prefferedTarget);
         target = Instantiate(targetPrefab).GetComponent <TargetScript>();
         target.SetPos(x, y);
     }
     else
     {
         if (x == prefferedTarget.x && y == prefferedTarget.y)
         {
             test = false;
             Destroy(target.gameObject);
             prefferedTarget = null;
         }
         else
         {
             test            = true;
             prefferedTarget = new Point(x, y);
             target.SetPos(x, y);
         }
     }
 }
コード例 #2
0
    void Awake()
    {
        GetComponent <TilemapRenderer>().enabled = false;
        Tilemap             tilemap = GetComponent <Tilemap>();
        List <TargetScript> targets = new List <TargetScript>();

        Dictionary <string, TargetScript> targetPrefabs =
            FindObjectOfType <LevelManager>().targetPrefabs;

        int xSize = tilemap.cellBounds.xMax - tilemap.cellBounds.xMin + 1;
        int ySize = tilemap.cellBounds.yMax - tilemap.cellBounds.yMin + 1;

        targetGrid = new TargetScript[xSize][];

        for (int x = 0; x < xSize; x++)
        {
            targetGrid[x] = new TargetScript[ySize];

            for (int y = 0; y < ySize; y++)
            {
                Vector3Int tilePos = new Vector3Int(
                    x + tilemap.cellBounds.xMin, y + tilemap.cellBounds.yMin, 0);
                TileBase tile = tilemap.GetTile(tilePos);
                if (tile != null && targetPrefabs.ContainsKey(tile.name))
                {
                    TargetScript target = Instantiate <TargetScript>(targetPrefabs[tile.name],
                                                                     tilemap.GetCellCenterWorld(tilePos), Quaternion.identity);
                    target.transform.parent = transform;
                    targetGrid[x][y]        = target;
                    target.SetPos(x, y);
                    target.SetColor(targetColors[Random.Range(0, targetColors.Length)]);
                    targets.Add(target);
                }
            }
        }

        FindObjectOfType <LevelManager>().SetTargets(targets);
    }