summaryrefslogtreecommitdiff
path: root/VRCSDK3Worlds/Assets/Bakery/BakeryDirectLight.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--VRCSDK3Worlds/Assets/Bakery/BakeryDirectLight.cs107
-rw-r--r--VRCSDK3Worlds/Assets/Bakery/BakeryDirectLight.cs.meta12
2 files changed, 119 insertions, 0 deletions
diff --git a/VRCSDK3Worlds/Assets/Bakery/BakeryDirectLight.cs b/VRCSDK3Worlds/Assets/Bakery/BakeryDirectLight.cs
new file mode 100644
index 00000000..be807fc3
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Bakery/BakeryDirectLight.cs
@@ -0,0 +1,107 @@
+using UnityEngine;
+
+#if UNITY_EDITOR
+using UnityEditor;
+#endif
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+[ExecuteInEditMode]
+[DisallowMultipleComponent]
+public class BakeryDirectLight : MonoBehaviour
+{
+ public Color color = Color.white;
+ public float intensity = 1.0f;
+ public float shadowSpread = 0.01f;//0.05f;
+ public int samples = 16;
+ //public uint bitmask = 1;
+ public int bitmask = 1;
+ public bool bakeToIndirect = false;
+ public bool shadowmask = false;
+ public bool shadowmaskDenoise = false;
+ public float indirectIntensity = 1.0f;
+ public Texture2D cloudShadow;
+ public float cloudShadowTilingX = 0.01f;
+ public float cloudShadowTilingY = 0.01f;
+ public float cloudShadowOffsetX, cloudShadowOffsetY;
+
+ public int UID;
+
+ public static int lightsChanged = 0; // 1 = const, 2 = full
+
+#if UNITY_EDITOR
+ void OnValidate()
+ {
+ if (lightsChanged == 0) lightsChanged = 1;
+ }
+ void OnEnable()
+ {
+ lightsChanged = 2;
+ }
+ void OnDisable()
+ {
+ lightsChanged = 2;
+ }
+
+ public void Start()
+ {
+ if (gameObject.GetComponent<BakerySkyLight>() != null ||
+ gameObject.GetComponent<BakeryPointLight>() != null ||
+ gameObject.GetComponent<BakeryLightMesh>() != null)
+ {
+ EditorUtility.DisplayDialog("Bakery", "Can't have more than one Bakery light on one object", "OK");
+ DestroyImmediate(this);
+ return;
+ }
+
+ if (EditorApplication.isPlayingOrWillChangePlaymode) return;
+ if (UID == 0) UID = Guid.NewGuid().GetHashCode();
+ ftUniqueIDRegistry.Register(UID, gameObject.GetInstanceID());
+ }
+
+ void OnDestroy()
+ {
+ if (UID == 0) return;
+ if (EditorApplication.isPlayingOrWillChangePlaymode) return;
+ ftUniqueIDRegistry.Deregister(UID);
+ }
+
+ void Update()
+ {
+ if (EditorApplication.isPlayingOrWillChangePlaymode) return;
+ if (!ftUniqueIDRegistry.Mapping.ContainsKey(UID)) ftUniqueIDRegistry.Register(UID, gameObject.GetInstanceID());
+ if (gameObject.GetInstanceID() != ftUniqueIDRegistry.GetInstanceId(UID))
+ {
+ UID = Guid.NewGuid().GetHashCode();
+ ftUniqueIDRegistry.Register(UID, gameObject.GetInstanceID());
+ }
+ }
+
+ void OnDrawGizmos()
+ {
+ Gizmos.color = Color.yellow;
+ Gizmos.DrawSphere(transform.position, 0.1f);
+
+ //Gizmos.DrawWireSphere(transform.position, 0.5f);
+ }
+
+ void OnDrawGizmosSelected()
+ {
+ Gizmos.color = Color.yellow;
+ var endPoint = transform.position + transform.forward * 2;
+ Gizmos.DrawLine(transform.position, endPoint);
+
+ //Gizmos.color = Color.blue;
+ Gizmos.DrawWireSphere(transform.position, 0.2f);
+
+ Gizmos.DrawLine(endPoint, endPoint + (transform.position + transform.right - endPoint).normalized * 0.5f);
+ Gizmos.DrawLine(endPoint, endPoint + (transform.position - transform.right - endPoint).normalized * 0.5f);
+ Gizmos.DrawLine(endPoint, endPoint + (transform.position + transform.up - endPoint).normalized * 0.5f);
+ Gizmos.DrawLine(endPoint, endPoint + (transform.position - transform.up - endPoint).normalized * 0.5f);
+ }
+
+#endif
+}
+
diff --git a/VRCSDK3Worlds/Assets/Bakery/BakeryDirectLight.cs.meta b/VRCSDK3Worlds/Assets/Bakery/BakeryDirectLight.cs.meta
new file mode 100644
index 00000000..be67cf1e
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Bakery/BakeryDirectLight.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c74ce2158ae608549902afb4112fd042
+timeCreated: 1526382158
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: