Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class Map : MonoBehaviour {
- // Inicialización de la clase TipoTile.
- public TipoTile[] tipoTiles;
- // Variable del GameObject de la unidad seleccionada.
- public GameObject unidadSeleccionada;
- // Inicialización de una variable array bidimensional para guardar las coordenadas.
- int[,] tiles;
- // Tamaño del mapa en X y Y.
- public int mapSizeX = 5;
- public int mapSizeY = 5;
- // Variación de offset
- public float offset = 3f;
- // Función para hacer al iniciar la escena.
- void Start(){
- //Asignamos la unidad seleccionada al player por el tag "Player".
- unidadSeleccionada = GameObject.FindGameObjectWithTag("Player");
- // Asignación de valores para el array de tiles.
- tiles = new int[mapSizeX,mapSizeY];
- // For para asignar a cada nodo un tipo de tile.
- for(int x = 0; x < mapSizeX; x++){
- for(int y = 0; y < mapSizeY; y++){
- tiles[x,y] = 0;
- }
- }
- GenerarTiles();
- }
- // Función para generar los tiles del mapa.
- void GenerarTiles() {
- // For para recorrer cada tile y crearlo.
- for(int x = 0; x < mapSizeX; x++){
- for(int y = 0; y < mapSizeY; y++){
- // Asignación de todas las propiedades del tipo de tile.
- TipoTile tt = tipoTiles[ tiles[x,y] ];
- // Creación del GameObject (tile) con sus propiedades.
- GameObject tileGO = Instantiate(tt.prefabVisualTile as GameObject, new Vector3(x*offset,0,y*offset), Quaternion.identity);
- // Cambio de nombre del GameObject (tile) al nombre de la coordenada actual.
- tileGO.name = "(" + x + "," + y + ") - ["+ tt.nombre+"]";
- // Se mueve el GameObjetc o actual tile como hijo a el GameObject Map (Este contendra todos los tiles).
- tileGO.transform.parent = this.transform;
- // Obtenemos el script TileClickeable del tile actual.
- TileClickeable tc = tileGO.GetComponent<TileClickeable>();
- // Asignamos los valores de (x,y) del acutal tile.
- tc.tileX = (int)(x*offset);
- tc.tileY = (int)(y*offset);
- // Asignamos el contenedor del mapa a los tiles.
- tc.map = this;
- }
- }
- }
- // Función en la que obtenemos las coordenadas para mover la unidad seleccionada.
- public void MoverUnidadSeleccionadaA(int x, int y){
- // Movemos la unidad seleccionada al punto del tile clickeado.
- unidadSeleccionada.transform.position = new Vector3(x, 0, y);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement