summaryrefslogtreecommitdiff
path: root/AlienSurvival/Assets/Scripts/Test/TestSceneViewShaderHelper.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2022-04-22 19:22:09 +0800
committerchai <chaifix@163.com>2022-04-22 19:22:09 +0800
commitc7de0419a8924ae7333bcaed39e797d7c9fc1e69 (patch)
tree7958bdb136a866dc2fc11d28d94bd10fb0d5b745 /AlienSurvival/Assets/Scripts/Test/TestSceneViewShaderHelper.cs
parentefa110ed3a787c460f5c5ae734a997860916fca5 (diff)
* change folder of resources
Diffstat (limited to 'AlienSurvival/Assets/Scripts/Test/TestSceneViewShaderHelper.cs')
-rw-r--r--AlienSurvival/Assets/Scripts/Test/TestSceneViewShaderHelper.cs46
1 files changed, 46 insertions, 0 deletions
diff --git a/AlienSurvival/Assets/Scripts/Test/TestSceneViewShaderHelper.cs b/AlienSurvival/Assets/Scripts/Test/TestSceneViewShaderHelper.cs
new file mode 100644
index 0000000..fca1bff
--- /dev/null
+++ b/AlienSurvival/Assets/Scripts/Test/TestSceneViewShaderHelper.cs
@@ -0,0 +1,46 @@
+using System;
+using UnityEngine;
+
+[ExecuteInEditMode]
+public class TestSceneViewShaderHelper : MonoBehaviour
+{
+#if UNITY_EDITOR
+ private int _isSceneViewID = Shader.PropertyToID("_IsSceneView");
+
+ public void OnEnable()
+ {
+ Camera.onPreRender += SetIfSceneViewCamera;
+ }
+
+ public void OnDisable()
+ {
+ Camera.onPreRender -= SetIfSceneViewCamera;
+ }
+
+ public void SetIfSceneViewCamera(Camera cam)
+ {
+ // Scene View camera is named "SceneCamera"
+ if (cam.gameObject.name == "SceneCamera")
+ {
+ Shader.EnableKeyword("SCENE_VIEW");
+ Shader.SetGlobalFloat(_isSceneViewID, 1f);
+ }
+ // Inspector preview for materials, models, and prefabs is named "Preview Scene Camera"
+ // else if (cam.gameObject.name == "Preview Scene Camera")
+ // {
+ // Shader.EnableKeyword("SCENE_VIEW");
+ // Shader.SetGlobalFloat(_isSceneViewID, 2f);
+ // }
+ // Otherwise this is a game view or other user camera
+ else
+ {
+ Shader.DisableKeyword("SCENE_VIEW");
+ Shader.SetGlobalFloat(_isSceneViewID, 0f);
+ }
+
+ // You can double check the camera names if something breaks in the future
+ // Debug.Log(cam);
+ }
+#endif
+}
+ \ No newline at end of file