using UnityEngine; #if UNITY_EDITOR using UnityEditor; #endif using System; using System.Collections; using System.Collections.Generic; [ExecuteInEditMode] [DisallowMultipleComponent] public class BakerySkyLight : MonoBehaviour { public string texName = "sky.dds"; public Color color = Color.white; public float intensity = 1.0f; public int samples = 32; public bool hemispherical = false; public int bitmask = 1; public bool bakeToIndirect = true; public float indirectIntensity = 1.0f; public bool tangentSH = false; public bool correctRotation = false; public Cubemap cubemap; public int UID; public static int lightsChanged = 0; // 1 = const, 2 = full static GameObject objShownError; #if UNITY_EDITOR void OnValidate() { if (lightsChanged == 0) lightsChanged = 1; } void OnEnable() { lightsChanged = 2; } void OnDisable() { lightsChanged = 2; } public void Start() { if (gameObject.GetComponent() != null || gameObject.GetComponent() != null || gameObject.GetComponent() != null) { if (objShownError != gameObject) { EditorUtility.DisplayDialog("Bakery", "Can't have more than one Bakery light on one object", "OK"); objShownError = gameObject; } else { Debug.LogError("Can't have more than one Bakery light on one object"); } DestroyImmediate(this); return; } if (EditorApplication.isPlayingOrWillChangePlaymode) return; if (UID == 0) UID = Guid.NewGuid().GetHashCode(); // legacy } void OnDrawGizmos() { Gizmos.color = new Color(49/255.0f, 91/255.0f, 191/255.0f); Gizmos.DrawSphere(transform.position, 0.1f); } void OnDrawGizmosSelected() { Gizmos.color = new Color(49/255.0f, 91/255.0f, 191/255.0f); Vector3 origin = transform.position; const int segments = 16; for(int i=0; i