blob: fca1bff62bffefb7731efe6f448f0a1c786c1c8f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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
}
|