You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

156 lines
4.3 KiB
C#

using UnityEngine;
using System.Collections;
public class guiFPS : MonoBehaviour {
//Public Variables
public Texture2D showLabel;
public Vector2 labelOffset = new Vector2(0.5f,0.5f);
public Color labelColor = new Color(1f,1f,1f,1f);
//Private variales
private float updateInterval = 0.3f;
private string GuiMsg = "---";
private string VerMsg = "---";
private float accum = 0.0f;
private float frames = 0f;
private float timeleft;
private Suimono.Core.SuimonoModule moduleObject;
private Suimono.Core.SuimonoObject oceanObject;
private string displayMode = "---";
private bool inputKeyMode = false;
private string displayPreset = "---";
private bool inputKeyPreset = false;
private int currentPreset;
private int usePreset;
void Awake(){
if (GameObject.Find("SUIMONO_Module") != null){
moduleObject = GameObject.Find("SUIMONO_Module").gameObject.GetComponent<Suimono.Core.SuimonoModule>() as Suimono.Core.SuimonoModule;
}
if (GameObject.Find("SUIMONO_Surface_Ocean") != null){
oceanObject = GameObject.Find("SUIMONO_Surface_Ocean").gameObject.GetComponent<Suimono.Core.SuimonoObject>() as Suimono.Core.SuimonoObject;
}
}
void Start () {
currentPreset = 0;
}
void LateUpdate () {
//GET Version Number
if (moduleObject != null){
VerMsg = "| Ver. "+moduleObject.suimonoVersionNumber;
}
// CALCULATE FPS
timeleft -= Time.deltaTime;
accum += Time.timeScale/Time.deltaTime;
++frames;
// Interval ended - update GUI text and start new interval
if( timeleft <= 0.0 )
{
// display two fractional digits (f2 format)
GuiMsg = "FPS: "+(accum/frames).ToString("f0");
timeleft = updateInterval;
accum = 0.0f;
frames = 0;
}
//---------------------------
//#### MODE SWITCHING ####
//---------------------------
//Get Keys
inputKeyMode = Input.GetKeyUp("1");
if (oceanObject != null){
if (!oceanObject.enableTess) displayMode = "DX9";
if (oceanObject.enableTess) displayMode = "DX11";
//Handle Mode Switch
if (inputKeyMode){
oceanObject.enableTess = !oceanObject.enableTess;
}
}
//----------------------------------
//#### OCEAN PRESET SWITCHING ####
//----------------------------------
//Get Keys
inputKeyPreset = Input.GetKeyUp("2");
if (usePreset == 0) displayPreset = "Blue Ocean with Waves";
if (usePreset == 1) displayPreset = "Calm Carribean Blue";
if (usePreset == 2) displayPreset = "Calm Clear";
if (usePreset == 3) displayPreset = "Deep Dark Ocean";
if (usePreset == 4) displayPreset = "Hot Spring Murky";
if (usePreset == 5) displayPreset = "Mirror Reflection";
if (usePreset == 6) displayPreset = "Mud Thick Brown";
if (usePreset == 7) displayPreset = "Swimming Pool";
//Handle Mode Switch
if (inputKeyPreset){
currentPreset += 1;
if (currentPreset > 7) currentPreset = 0;
}
if (usePreset != currentPreset){
usePreset=currentPreset;
if (usePreset == 0) oceanObject.SuimonoSetPreset("Built-In Presets","Blue Ocean with Waves");
if (usePreset == 1) oceanObject.SuimonoSetPreset("Built-In Presets","Calm Carribean Blue");
if (usePreset == 2) oceanObject.SuimonoSetPreset("Built-In Presets","Calm Clear");
if (usePreset == 3) oceanObject.SuimonoSetPreset("Built-In Presets","Deep Dark Ocean");
if (usePreset == 4) oceanObject.SuimonoSetPreset("Built-In Presets","Hot Spring Murky");
if (usePreset == 5) oceanObject.SuimonoSetPreset("Built-In Presets","Mirror Reflection");
if (usePreset == 6) oceanObject.SuimonoSetPreset("Built-In Presets","Mud Thick Brown");
if (usePreset == 7) oceanObject.SuimonoSetPreset("Built-In Presets","Swimming Pool");
}
}
void OnGUI(){
GUI.color = new Color(0.0f,0.0f,0.0f,1.0f);
GUI.Label (new Rect(15f, 10f, 600f, 20f), "SUIMONO 2.0 - Interactive Water System for Unity");
GUI.Label (new Rect(323f, 10f, 200f, 20f), VerMsg);
GUI.color = new Color(1.0f,0.45f,0.0f,1.0f);
GUI.Label (new Rect(15f, 26f, 100f, 20f), GuiMsg);
GUI.color = new Color(1.0f,0.45f,0.0f,1.0f);
GUI.Label (new Rect(90f, 26f, 300f, 20f), "Preset: "+displayPreset);
GUI.color = new Color(1.0f,0.45f,0.0f,1.0f);
GUI.Label (new Rect(290f, 26f, 300f, 20f), "Mode: "+displayMode);
if (showLabel != null){
GUI.color = labelColor;
GUI.Label(new Rect(15f,53f, showLabel.width,showLabel.height), showLabel);
}
}
}