A game about forced loneliness, made by TACStudios
1#if UNITY_EDITOR
2using UnityEditor;
3#endif
4
5using System;
6using UnityEngine.Analytics;
7
8namespace UnityEngine.Rendering
9{
10 /// <summary>
11 /// Setup a specific render pipeline on scene loading.
12 /// This need to be used with caution as it will change project configuration.
13 /// </summary>
14#if UNITY_EDITOR
15 [ExecuteAlways]
16#endif
17 public class SceneRenderPipeline : MonoBehaviour
18 {
19#if UNITY_EDITOR
20 [SerializeField] bool firstTimeCreated = true;
21
22 /// <summary>
23 /// Scriptable Render Pipeline Asset to setup on scene load.
24 /// </summary>
25 public RenderPipelineAsset renderPipelineAsset;
26
27 void Awake()
28 {
29 if (firstTimeCreated)
30 {
31 renderPipelineAsset = GraphicsSettings.defaultRenderPipeline;
32 firstTimeCreated = false;
33 }
34
35 //Send analytics each time to find usage in content dl on the asset store too
36 SceneRenderPipelineAnalytic.SendAnalytic(this);
37 }
38
39 void OnEnable()
40 {
41 GraphicsSettings.defaultRenderPipeline = renderPipelineAsset;
42 }
43
44
45 [AnalyticInfo(eventName: "sceneRenderPipelineAssignment", vendorKey: "unity.srp", maxEventsPerHour: 10, maxNumberOfElements: 1000)]
46 class SceneRenderPipelineAnalytic : IAnalytic
47 {
48
49 public SceneRenderPipelineAnalytic(string guid)
50 {
51 m_Data = new Data
52 {
53 scene_guid = guid
54 };
55 }
56
57 [System.Diagnostics.DebuggerDisplay("{scene_guid}")]
58 [Serializable]
59 internal struct Data : IAnalytic.IData
60 {
61 // Naming convention for analytics data
62 public string scene_guid;
63 };
64
65 public bool TryGatherData(out IAnalytic.IData data, out Exception error)
66 {
67 data = m_Data;
68 error = null;
69 return true;
70 }
71
72 static public void SendAnalytic(SceneRenderPipeline sender)
73 {
74 SceneRenderPipelineAnalytic analytic = new SceneRenderPipelineAnalytic(sender.gameObject.scene.GetGUID());
75 EditorAnalytics.SendAnalytic(analytic);
76 }
77
78 Data m_Data;
79 }
80
81
82#endif
83 }
84}