最近在搞renderFeature,写了个脚本来控制他的开关
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Rendering.Universal; [System.Serializable] public struct RenderFeatureToggle { public ScriptableRendererFeature feature; public bool isEnabled; } [ExecuteAlways] public class RenderFeatureToggler : MonoBehaviour { [SerializeField] private List<RenderFeatureToggle> renderFeatures = new List<RenderFeatureToggle>(); [SerializeField] private UniversalRenderPipelineAsset pipelineAsset; private void Update() { foreach (RenderFeatureToggle toggleObj in renderFeatures) { toggleObj.feature.SetActive(toggleObj.isEnabled); } } }
改一下可以用脚本控制
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Rendering.Universal; [System.Serializable] public struct RenderFeatureToggle { public ScriptableRendererFeature feature; public bool isEnabled; } [ExecuteAlways] public class RenderFeatureToggler : MonoBehaviour { [SerializeField] private List<RenderFeatureToggle> renderFeatures = new List<RenderFeatureToggle>(); [SerializeField] private UniversalRenderPipelineAsset pipelineAsset; private void Update() { //foreach (RenderFeatureToggle toggleObj in renderFeatures) //{ // toggleObj.feature.SetActive(toggleObj.isEnabled); //} } public void OpenRenderFeatureToggle() { foreach (RenderFeatureToggle toggleObj in renderFeatures) { toggleObj.feature.SetActive(true); } } public void OffRenderFeatureToggle() { foreach (RenderFeatureToggle toggleObj in renderFeatures) { toggleObj.feature.SetActive(false); } } }