A game about forced loneliness, made by TACStudios
at master 84 lines 2.4 kB view raw
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}