123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- #if GAIA_PRESENT && UNITY_EDITOR
- using UnityEngine;
- using System.Collections;
- using System;
- using System.Reflection;
- using VolumetricFogAndMist;
- using UnityEditor;
- namespace Gaia.GX.Kronnect
- {
- /// <summary>
- /// Volumetric Fog & Mist extension for Gaia.
- /// </summary>
- public class VolumetricFogGaiaExtension : MonoBehaviour
- {
- #region Generic informational methods
- /// <summary>
- /// Returns the publisher name if provided.
- /// This will override the publisher name in the namespace ie Gaia.GX.PublisherName
- /// </summary>
- /// <returns>Publisher name</returns>
- public static string GetPublisherName()
- {
- return "Kronnect";
- }
- /// <summary>
- /// Returns the package name if provided
- /// This will override the package name in the class name ie public class PackageName.
- /// </summary>
- /// <returns>Package name</returns>
- public static string GetPackageName()
- {
- return "Volumetric Fog & Mist";
- }
- #endregion
- #region Methods exposed by Gaia as buttons must be prefixed with GX_
- public static void GX_About()
- {
- EditorUtility.DisplayDialog("About Volumetric Fog & Mist", "Volumetric Fog & Mist is a full-screen image effect that adds realistic, live, moving fog, mist, dust, clouds and sky haze to your scenes making them less dull and boring.", "OK");
- }
- static VolumetricFog CheckFog() {
- VolumetricFog fog = VolumetricFog.instance;
- // Checks Volumetric Fog image effect is attached
- if (fog==null) {
- Camera camera = Camera.main;
- if (camera == null)
- {
- camera = FindObjectOfType<Camera>();
- }
- if (camera == null)
- {
- Debug.LogError("Could not find camera to add camera effects to. Please add a camera to your scene.");
- return null;
- }
- fog = camera.gameObject.AddComponent<VolumetricFog>();
- }
- // Finds a suitable Sun light
- if (fog.sun==null) {
- Light[] lights = FindObjectsOfType<Light>();
- for (int k=0;k<lights.Length;k++) {
- Light light = lights[k];
- if (light.name.Equals("Sun")) {
- fog.sun = light.gameObject;
- break;
- }
- }
- if (fog.sun==null) {
- for (int k=0;k<lights.Length;k++) {
- Light light = lights[k];
- if (light.type == LightType.Directional) {
- fog.sun = light.gameObject;
- break;
- }
- }
- }
- }
- return fog;
- }
- public static void GX_WorldEdge() {
- VolumetricFog fog = CheckFog();
- if (fog==null) return;
- fog.preset = FOG_PRESET.WorldEdge;
- fog.preset = FOG_PRESET.Custom; // enable to make modifications and preserve them
- }
- public static void GX_WindyMist() {
- VolumetricFog fog = CheckFog();
- if (fog==null) return;
- fog.preset = FOG_PRESET.WindyMist;
- fog.preset = FOG_PRESET.Custom; // enable to make modifications and preserve them
- }
- public static void GX_SeaOfClouds() {
- VolumetricFog fog = CheckFog();
- if (fog==null) return;
- fog.preset = FOG_PRESET.SeaClouds;
- fog.preset = FOG_PRESET.Custom; // enable to make modifications and preserve them
- }
- public static void GX_Fog() {
- VolumetricFog fog = CheckFog();
- if (fog==null) return;
- fog.preset = FOG_PRESET.Fog;
- fog.preset = FOG_PRESET.Custom; // enable to make modifications and preserve them
- }
- public static void GX_HeavyFog() {
- VolumetricFog fog = CheckFog();
- if (fog==null) return;
- fog.preset = FOG_PRESET.HeavyFog;
- fog.preset = FOG_PRESET.Custom; // enable to make modifications and preserve them
- }
-
- public static void GX_FrostedWater() {
- VolumetricFog fog = CheckFog();
- if (fog==null) return;
- fog.preset = FOG_PRESET.FrostedGround;
- fog.preset = FOG_PRESET.Custom; // enable to make modifications and preserve them
- fog.color = Color.white;
- fog.height = 1.5f;
- }
- public static void GX_GroundFog() {
- VolumetricFog fog = CheckFog();
- if (fog==null) return;
- fog.preset = FOG_PRESET.GroundFog;
- fog.preset = FOG_PRESET.Custom; // enable to make modifications and preserve them
- }
- public static void GX_ToxicSwamps() {
- VolumetricFog fog = CheckFog();
- if (fog==null) return;
- fog.preset = FOG_PRESET.ToxicSwamp;
- fog.preset = FOG_PRESET.Custom; // enable to make modifications and preserve them
- }
- public static void GX_FoggyLakes() {
- VolumetricFog fog = CheckFog();
- if (fog==null) return;
- fog.preset = FOG_PRESET.FoggyLake;
- fog.preset = FOG_PRESET.Custom; // enable to make modifications and preserve them
- }
-
- public static void GX_SandStorm1() {
- VolumetricFog fog = CheckFog();
- if (fog==null) return;
- fog.preset = FOG_PRESET.SandStorm1;
- fog.preset = FOG_PRESET.Custom; // enable to make modifications and preserve them
- }
- public static void GX_SandStorm2() {
- VolumetricFog fog = CheckFog();
- if (fog==null) return;
- fog.preset = FOG_PRESET.SandStorm2;
- fog.preset = FOG_PRESET.Custom; // enable to make modifications and preserve them
- }
- #endregion
-
- }
- }
- #endif
|