108 lines
3.2 KiB
C#
108 lines
3.2 KiB
C#
using System;
|
|
using UnityEngine;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
|
|
[Serializable]
|
|
[RequireComponent(typeof(Camera))]
|
|
public class MiniMap : MonoBehaviour
|
|
{
|
|
public float camHeight = 650;
|
|
public Terrain[] terrains;
|
|
|
|
private bool revertFogState = false;
|
|
// /*UNUSED*/ private bool terrainLighting = false; //DRAGONHERE: TerrainLighting depricated, rewrite this code to use new QualitySettings system
|
|
private int terrainLOD = 0;
|
|
private float terrainTreeDistance = 0;
|
|
private float terrainDetailDistance = 0;
|
|
// /*UNUSED*/ private float terrainBasemapDistance = 0;
|
|
|
|
public void Update()
|
|
{
|
|
if (
|
|
!Game.Settings.minimapAllowed ||
|
|
!Game.Settings.useMinimap ||
|
|
Game.Controller.loadingWorld ||
|
|
!Game.Player)
|
|
{
|
|
camera.enabled = false;
|
|
return;
|
|
}
|
|
camera.enabled = true;
|
|
|
|
transform.position = Camera.main.transform.position;
|
|
|
|
Vector3 tpos = transform.position;
|
|
tpos.y = Game.Player.transform.position.y + camHeight;
|
|
transform.position = tpos;
|
|
|
|
transform.rotation = Quaternion.Slerp(
|
|
transform.rotation,
|
|
Quaternion.Euler(90f, Game.Player.transform.eulerAngles.y, 0f),
|
|
Time.deltaTime);
|
|
}
|
|
|
|
public void OnPreRender()
|
|
{
|
|
revertFogState = RenderSettings.fog;
|
|
RenderSettings.fog = false;
|
|
|
|
if (World.terrains != null && World.terrains.Length > 0)
|
|
{
|
|
//if(World.terrains[0].lighting == TerrainLighting.Pixel) terrainLightingEnabled = true;
|
|
//else terrainLightingEnabled = false;
|
|
//terrainBasemapDistance = World.terrains[0].basemapDistance;
|
|
terrainLOD = World.terrains[0].heightmapMaximumLOD;
|
|
terrainTreeDistance = World.terrains[0].treeDistance;
|
|
terrainDetailDistance = World.terrains[0].detailObjectDistance;
|
|
foreach (Terrain trn in World.terrains)
|
|
{
|
|
//trn.basemapDistance = 1000;
|
|
if (Game.Settings.renderLevel > 4)
|
|
{
|
|
trn.heightmapMaximumLOD = 3;
|
|
}
|
|
else if (Game.Settings.renderLevel > 3)
|
|
{
|
|
trn.heightmapMaximumLOD = 4;
|
|
}
|
|
else trn.heightmapMaximumLOD = 5;
|
|
//trn.lighting = TerrainLighting.Lightmap;
|
|
trn.treeDistance = 0;
|
|
trn.detailObjectDistance = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
public void OnPostRender()
|
|
{
|
|
RenderSettings.fog = revertFogState;
|
|
|
|
if (World.terrains != null)
|
|
{
|
|
foreach (Terrain trn in World.terrains)
|
|
{
|
|
trn.treeDistance = terrainTreeDistance;
|
|
trn.detailObjectDistance = terrainDetailDistance;
|
|
trn.heightmapMaximumLOD = terrainLOD;
|
|
}
|
|
}
|
|
}
|
|
|
|
public void OnGUI()
|
|
{
|
|
if (
|
|
!Game.Settings.minimapAllowed ||
|
|
!Game.Settings.useMinimap ||
|
|
!Game.Player) return;
|
|
camHeight = GUI.HorizontalSlider(
|
|
new Rect(
|
|
Screen.width * 0.01f + 25f,
|
|
Screen.height - 20f - Screen.height * 0.001f,
|
|
Screen.width * 0.25f - 50f, 20f),
|
|
camHeight,
|
|
200f,
|
|
1300f);
|
|
}
|
|
}
|