summaryrefslogtreecommitdiff
path: root/SurvivalTest/Assets/Scripts/Test/TestSceneViewShaderHelper.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2022-04-22 19:24:15 +0800
committerchai <chaifix@163.com>2022-04-22 19:24:15 +0800
commitded822e98e8eda49618d17e53407b0df1896e539 (patch)
treed7f09eafe52f7adb948889e459e900c360dbbdec /SurvivalTest/Assets/Scripts/Test/TestSceneViewShaderHelper.cs
parentc7de0419a8924ae7333bcaed39e797d7c9fc1e69 (diff)
* rename AlienSurvival project to SurvivalTest
Diffstat (limited to 'SurvivalTest/Assets/Scripts/Test/TestSceneViewShaderHelper.cs')
-rw-r--r--SurvivalTest/Assets/Scripts/Test/TestSceneViewShaderHelper.cs46
1 files changed, 46 insertions, 0 deletions
diff --git a/SurvivalTest/Assets/Scripts/Test/TestSceneViewShaderHelper.cs b/SurvivalTest/Assets/Scripts/Test/TestSceneViewShaderHelper.cs
new file mode 100644
index 0000000..fca1bff
--- /dev/null
+++ b/SurvivalTest/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