Синтаксис:
Используется javascript
var HUDSkin : GUISkin;
var waterLevel : float;
var uAudio : AudioClip;
var aAudio : AudioClip;
var uDensity = 0;
var aColor = Color(1,1,1,1);
var aDensity = 0.0015;
var waterSurface : Renderer;
var underwaterSurface : Renderer;
private var below = false;
private var glow : GlowEffect;
private var blur : BlurEffect;
private var cc : ColorCorrectionEffect;
private var uColor : Color;
function Awake() {
if(!waterLevel)
{
water = GameObject.Find("Water").transform.position.y;
if(water) waterLevel = water;
}
aColor = RenderSettings.fogColor;
aDensity = RenderSettings.fogDensity;
glow = GetComponent(GlowEffect);
blur = GetComponent(BlurEffect);
cc = GetComponent(ColorCorrectionEffect);
if( !glow || !blur || !cc)
{
Debug.LogError("No right Glow/Blur/ColorCorrection assigned to camera!");
enabled = false;
}
if( !waterSurface || !underwaterSurface )
{
Debug.LogError("Assign water & underwater surfaces");
enabled = false;
}
if( underwaterSurface != null )
underwaterSurface.enabled = false; // initially underwater is disabled
}
function Update ()
{
uColor=camera.backgroundColor;
}
function FixedUpdate ()
{
if (waterLevel < transform.position.y && below)
{
audio.clip = aAudio;
audio.Play();
RenderSettings.fogDensity = aDensity;
RenderSettings.fogColor = aColor;
below = false;
//glow.enabled = !below && glow.IsSupported();
blur.enabled = below && blur.IsSupported();
cc.enabled = below && blur.IsSupported();
waterSurface.enabled = true;
underwaterSurface.enabled = false;
}
if (waterLevel > transform.position.y && !below)
{
audio.clip = uAudio;
audio.Play();
RenderSettings.fogDensity = uDensity;
RenderSettings.fogColor = uColor;
below = true;
//glow.enabled = !below && glow.IsSupported();
blur.enabled = below && blur.IsSupported();
cc.enabled = below && blur.IsSupported();
waterSurface.enabled = false;
underwaterSurface.enabled = true;
}
}
function OnGUI () {
GUI.skin = HUDSkin;
water = GameObject.Find("Water").transform.position.y;
if(water) waterLevel = water;
sWaterLevel = waterLevel.ToString();
sWaterLevel = "Water level position: " + sWaterLevel;
uWater = GameObject.Find("Water/uWater").transform.position.y;
if(uWater) uWaterLevel = uWater;
suWaterLevel = uWaterLevel.ToString();
suWaterLevel = "Under water level position: " + suWaterLevel;
pos = gameObject.Find("testPlayer 1/Pelvis/Stomach/Breast/Head/Camera").transform.position.y;
pos -= 6.5;
sPos = pos.ToString();
sPos = "Head Position: " + sPos;
sTime = Time.realtimeSinceStartup.ToString();
sTime = "Real Time Since Startup: " + (Mathf.Floor(Time.realtimeSinceStartup / 3600)).ToString() + ":" + (Mathf.Floor(Time.realtimeSinceStartup / 60) - Mathf.Floor(Time.realtimeSinceStartup / 3600) * 60).ToString() + ":" + (Mathf.Floor(Time.realtimeSinceStartup) - Mathf.Floor(Time.realtimeSinceStartup / 60) * 60).ToString();
GUI.Label (Rect (10, 10, 250, 20), sWaterLevel);
GUI.Label (Rect (10, 20, 250, 20), suWaterLevel);
GUI.Label (Rect (10, 30, 250, 20), sPos);
GUI.Label (Rect (10, 40, 250, 20), sTime);
GUI.Label (Rect (10, 50, 250, 20), "Glow enabled: " + glow.enabled.ToString());
GUI.Label (Rect (10, 60, 250, 20), "Blur enabled: " + blur.enabled.ToString());
GUI.Label (Rect (10, 100, 250, 20), Time.realtimeSinceStartup.ToString());
}
var waterLevel : float;
var uAudio : AudioClip;
var aAudio : AudioClip;
var uDensity = 0;
var aColor = Color(1,1,1,1);
var aDensity = 0.0015;
var waterSurface : Renderer;
var underwaterSurface : Renderer;
private var below = false;
private var glow : GlowEffect;
private var blur : BlurEffect;
private var cc : ColorCorrectionEffect;
private var uColor : Color;
function Awake() {
if(!waterLevel)
{
water = GameObject.Find("Water").transform.position.y;
if(water) waterLevel = water;
}
aColor = RenderSettings.fogColor;
aDensity = RenderSettings.fogDensity;
glow = GetComponent(GlowEffect);
blur = GetComponent(BlurEffect);
cc = GetComponent(ColorCorrectionEffect);
if( !glow || !blur || !cc)
{
Debug.LogError("No right Glow/Blur/ColorCorrection assigned to camera!");
enabled = false;
}
if( !waterSurface || !underwaterSurface )
{
Debug.LogError("Assign water & underwater surfaces");
enabled = false;
}
if( underwaterSurface != null )
underwaterSurface.enabled = false; // initially underwater is disabled
}
function Update ()
{
uColor=camera.backgroundColor;
}
function FixedUpdate ()
{
if (waterLevel < transform.position.y && below)
{
audio.clip = aAudio;
audio.Play();
RenderSettings.fogDensity = aDensity;
RenderSettings.fogColor = aColor;
below = false;
//glow.enabled = !below && glow.IsSupported();
blur.enabled = below && blur.IsSupported();
cc.enabled = below && blur.IsSupported();
waterSurface.enabled = true;
underwaterSurface.enabled = false;
}
if (waterLevel > transform.position.y && !below)
{
audio.clip = uAudio;
audio.Play();
RenderSettings.fogDensity = uDensity;
RenderSettings.fogColor = uColor;
below = true;
//glow.enabled = !below && glow.IsSupported();
blur.enabled = below && blur.IsSupported();
cc.enabled = below && blur.IsSupported();
waterSurface.enabled = false;
underwaterSurface.enabled = true;
}
}
function OnGUI () {
GUI.skin = HUDSkin;
water = GameObject.Find("Water").transform.position.y;
if(water) waterLevel = water;
sWaterLevel = waterLevel.ToString();
sWaterLevel = "Water level position: " + sWaterLevel;
uWater = GameObject.Find("Water/uWater").transform.position.y;
if(uWater) uWaterLevel = uWater;
suWaterLevel = uWaterLevel.ToString();
suWaterLevel = "Under water level position: " + suWaterLevel;
pos = gameObject.Find("testPlayer 1/Pelvis/Stomach/Breast/Head/Camera").transform.position.y;
pos -= 6.5;
sPos = pos.ToString();
sPos = "Head Position: " + sPos;
sTime = Time.realtimeSinceStartup.ToString();
sTime = "Real Time Since Startup: " + (Mathf.Floor(Time.realtimeSinceStartup / 3600)).ToString() + ":" + (Mathf.Floor(Time.realtimeSinceStartup / 60) - Mathf.Floor(Time.realtimeSinceStartup / 3600) * 60).ToString() + ":" + (Mathf.Floor(Time.realtimeSinceStartup) - Mathf.Floor(Time.realtimeSinceStartup / 60) * 60).ToString();
GUI.Label (Rect (10, 10, 250, 20), sWaterLevel);
GUI.Label (Rect (10, 20, 250, 20), suWaterLevel);
GUI.Label (Rect (10, 30, 250, 20), sPos);
GUI.Label (Rect (10, 40, 250, 20), sTime);
GUI.Label (Rect (10, 50, 250, 20), "Glow enabled: " + glow.enabled.ToString());
GUI.Label (Rect (10, 60, 250, 20), "Blur enabled: " + blur.enabled.ToString());
GUI.Label (Rect (10, 100, 250, 20), Time.realtimeSinceStartup.ToString());
}
Теперь страдаю - эффект Blur возникает произвольно, мерцанием. При запуске игры всё норм, но затем начинаются лаги. Проблема именно в скрипте - без него всё норм пашет. BlurEffect.cs тоже не виноват.
Где лоханулся??