private void checkTerrainBelow() { RaycastHit hit; if (Physics.Raycast(transform.position + Vector3.up, Vector3.down, out hit, 2, 1 << 10)) { terrenoQuePiso = hit.collider.GetComponent <GroundTypeDelegate>().tipoTerreno; maxMovementSpeed = StatsInfo.velocidadUnidades[(int)tipo] * StatsInfo.velocidadUnidadPorTerreno[(int)terrenoQuePiso][(int)tipo]; } }
protected new void Start() { PersonajeBase[] personajes = FindObjectsOfType <PersonajeBase>(); charactersInScene = new List <PersonajeBase>(); foreach (PersonajeBase person in personajes) { if (!person.isFake) { charactersInScene.Add(person); gm.AddMatraca(person); } } terrenos = new StatsInfo.TIPO_TERRENO[(int)gridDimensions.x][]; influences = new float[(int)gridDimensions.x][]; visibleTerrain = new Color[(int)gridDimensions.x][]; float widthStep = (mapMaxLimits.x - mapMinLimits.x) / gridDimensions.x; float heightStep = (mapMaxLimits.y - mapMinLimits.y) / gridDimensions.y; for (int i = 0; i < gridDimensions.x; i++) { terrenos[i] = new StatsInfo.TIPO_TERRENO[(int)gridDimensions.y]; //Inic terrenos, influences y terrenos visibles influences[i] = new float[(int)gridDimensions.y]; visibleTerrain[i] = new Color[(int)gridDimensions.y]; for (int j = 0; j < gridDimensions.y; j++) { Vector3 originPoint = new Vector3(-(mapMinLimits.y + j * heightStep), 0.5f, mapMinLimits.x + i * widthStep); RaycastHit hit; if (Physics.Raycast(originPoint, Vector3.down, out hit, 1f, 1 << 10)) { terrenos[i][j] = hit.collider.GetComponent <GroundTypeDelegate>().tipoTerreno; } } } blocksize = new Vector2(widthStep, heightStep); minX = mapMinLimits.x; minY = mapMinLimits.y; maxHeapSize = ((int)gridDimensions.x) * ((int)gridDimensions.y); gm.initIAs(); }