public static CamaraGrid instanciar() { if (instancia == null) { instancia = new CamaraGrid(); } return(instancia); }
protected void Update() { bool Creacion = Input.GetKeyDown(KeyCode.C); bool Seleccion = Input.GetKeyDown(KeyCode.S); bool Eliminar = Input.GetKeyDown(KeyCode.E); bool subirCapa = Input.GetKeyDown(KeyCode.KeypadPlus); bool bajarCapa = Input.GetKeyDown(KeyCode.KeypadMinus); bool planoGrid = Input.GetKeyDown(KeyCode.Tab); bool ModoTipoAzulejo = Input.GetKeyDown(KeyCode.Space); if (ModoTipoAzulejo) { if (tipoAzulejo == TipoAzulejo.Automatico) { tipoAzulejo = TipoAzulejo.Simple; } else { tipoAzulejo = TipoAzulejo.Automatico; } } if (planoGrid) { CamaraGrid.instanciar().gameObject.SetActive(!CamaraGrid.instanciar().gameObject.activeSelf); } if (subirCapa) { if (capa < CamaraConfiguracionComponente.mapaTam.y) { capa += 1; CamaraGrid.instanciar().actualizarPosicion(CamaraConfiguracionComponente.azulejoTam.y, CamaraGrid.GridElevacion.Subir); } } if (bajarCapa) { if (capa > 1) { capa -= 1; CamaraGrid.instanciar().actualizarPosicion(CamaraConfiguracionComponente.azulejoTam.y, CamaraGrid.GridElevacion.Bajar); } } if (Creacion) { brocha = Brocha.Creacion; } if (Seleccion) { brocha = Brocha.Seleccion; } if (Eliminar) { brocha = Brocha.Eliminar; } }
//public Entity CrearEntidad(Vector3Int posicion) //{ // EntityManager entityManager = World.DefaultGameObjectInjectionWorld.EntityManager; // EntityArchetype archetype = entityManager.CreateArchetype( // typeof(Translation), // typeof(RenderMesh), // typeof(RenderBounds), // typeof(LocalToWorld) // ); // Entity myEntity = entityManager.CreateEntity(archetype); // entityManager.SetName(myEntity, posicion.x + "_" + posicion.z); // entityManager.AddComponentData(myEntity, new Translation // { // Value = new float3(posicion.x, posicion.y, posicion.z) // }); // RenderBounds redn = new RenderBounds(); // redn.Value = mesh.bounds.ToAABB(); // entityManager.AddComponentData(myEntity, redn); // entityManager.AddSharedComponentData(myEntity, new RenderMesh // { // mesh = mesh, // material = material // }); // return myEntity; //} public Vector3Int ObtenerPosicionIsometrica(int capa) { CamaraGrid.instanciar().actualizarPosicion(1, capa); /*----*/ Vector3 Posicion = new Vector3(0, 0, 0); Plane PlanoX = new Plane(Vector3.up, 0); Ray ray = CamaraMovimientoSistema.CamaraLocal.ScreenPointToRay(Input.mousePosition); float distancia; if (PlanoX.Raycast(ray, out distancia)) { Posicion = ray.GetPoint(distancia); } /*--------------------------------------*/ //Debug.Log("Posicion REal:"+Posicion); float r = (capa - 1) + 0.25f * (capa - 1); int x = Mathf.FloorToInt(Posicion.x - r / tamAzulejo.x) + 1; int y = capa; // Mathf.FloorToInt(Posicion.y / CamaraConfiguracionComponente.azulejoTam.y) + 1; int z = Mathf.FloorToInt(Posicion.z - r / tamAzulejo.z) + 1; if (x < 0 || z < 0 || x > tamMundo.x || z > tamMundo.z) { return(new Vector3Int { x = -1, y = -1, z = -1 }); } return(new Vector3Int { x = x, y = y, z = z }); //CamaraPosicionComponente.posicionIsometrica = new Vector3Int { x = x, y = y, z = z }; //CamaraPosicionComponente.posicionNormal = Posicion; //CamaraPosicionComponente.posicionNumerica = (tamMundo.x * x) - tamMundo.z + z; //if (CamaraPosicionComponente.posicionIsometrica.x <= 0 || CamaraPosicionComponente.posicionIsometrica.x > ConfiguracionMapa.mapaTam.x || CamaraPosicionComponente.posicionIsometrica.z <= 0 || CamaraPosicionComponente.posicionIsometrica.z > ConfiguracionMapa.mapaTam.z) //{ // CamaraPosicionComponente.posicionIsometrica = new Vector3Int(0, 0, 0); // CamaraPosicionComponente.posicionNormal = new float3(0f, 0f, 0f); // CamaraPosicionComponente.posicionNumerica = 0; // return; //} //else //{ // // NotificarPantalla?.Invoke(this, PosicionIsometrica); //} }
protected override void OnUpdate() { Entities.ForEach((ref EntradaEdicionTeclasData entrada, ref EdicionModoActualData modo) => { bool teclaPresionadaTerreno = Input.GetKeyDown(entrada.teclaTerreno); bool teclaPresionadaRecursos = Input.GetKeyDown(entrada.teclaRecursos); bool teclaPresionadaCrear = Input.GetKeyDown(entrada.teclaCrear); bool teclaPresionadaEliminar = Input.GetKeyDown(entrada.teclaEliminar); bool teclaPresionadaModificar = Input.GetKeyDown(entrada.teclaModificar); bool teclaPresionadaSeleccion = Input.GetKeyDown(entrada.teclaSeleccion); bool teclaPresionadaSubirGrid = Input.GetKeyDown(entrada.teclaSubirGrid); bool teclaPresionadaBajarGrid = Input.GetKeyDown(entrada.teclaBajarGrid); bool teclaPresionadaActivarGrid = Input.GetKeyDown(entrada.teclaActivarGrid); bool teclaPresionadaAvanzar = Input.GetKeyDown(entrada.teclaAvanzar); bool teclaPresionadaRetroceder = Input.GetKeyDown(entrada.teclaRetroceder); bool teclaPresionadaGuardar = Input.GetKeyDown(entrada.teclaGuardar); bool teclaPresionadaCargar = Input.GetKeyDown(entrada.teclaCargar); if (teclaPresionadaGuardar) { AdministradorMundos.MundoActual().Guardar(); } if (teclaPresionadaCargar) { AdministradorMundos.MundoActual().Cargar(); } if (teclaPresionadaTerreno) { modo.tipoEdicion = TipoEdicion.Terreno; } if (teclaPresionadaRecursos) { modo.tipoEdicion = TipoEdicion.Recursos; } if (teclaPresionadaCrear) { modo.modoEdicion = ModoEdicion.Crear; } if (teclaPresionadaEliminar) { modo.modoEdicion = ModoEdicion.Eliminar; } if (teclaPresionadaSeleccion) { modo.modoEdicion = ModoEdicion.Seleccion; } if (teclaPresionadaSubirGrid) { if (modo.capaActual < 10) { modo.capaActual += 1; } } if (teclaPresionadaBajarGrid) { if (modo.capaActual > 1) { modo.capaActual -= 1; } } if (teclaPresionadaAvanzar) { } if (teclaPresionadaActivarGrid) { CamaraGrid.instanciar().ActivarDesactivarGrid(); } }); }
protected void Start() { CamaraLocal = CamaraIsometrica; PosicionCamara = this.transform; CamaraGrid.instanciar().actualizarGrid(ConfiguracionMapa.mapaTam, ConfiguracionMapa.azulejoTam); }