当前位置: 首页 > news >正文

unity在urp管线中插入事件

由于在urp下,打包后传统的相机事件有些无法正确执行,这时候我们需要在urp管线中的特定时机进行处理一些事件,需要创建继承ScriptableRenderPass和ScriptableRendererFeature的脚本,示例如下:

PluginEventPass:

using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;public class PluginEventPass : ScriptableRenderPass
{private readonly System.IntPtr _pluginCallback;private readonly int _eventID;public PluginEventPass(System.IntPtr callback, int eventID){_pluginCallback = callback;_eventID = eventID;renderPassEvent = RenderPassEvent.AfterRenderingSkybox; // 插件事件时机}//这里就是你要执行的事件public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData){
#if UNITY_EDITORif (!Application.isPlaying){return;}
#endifGL.IssuePluginEvent(_pluginCallback, _eventID);}
}

PluginEventFeature:

using UnityEngine;
using UnityEngine.Rendering.Universal;public class PluginEventFeature : ScriptableRendererFeature
{[SerializeField] int eventID = 1;private PluginEventPass _pluginPass;public override void Create(){var ptr = DllManager.GetRenderEventFunc();//这里是你的具体事件_pluginPass = new PluginEventPass(ptr, eventID);}public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData){renderer.EnqueuePass(_pluginPass);}
}

然后需要在asset目录下的Settings目录下找到,项目用的管线设置文件例如:

点击add,增加我们上面的设置。这里需要注意,要与Project Settings下的打包设置一致,不然打包后不生效:

http://www.xdnf.cn/news/618733.html

相关文章:

  • Opixs: Fluxim推出的全新显示仿真模拟软件
  • 易境通专线散拼系统:全方位支持多种专线物流业务!
  • 推挽电路工作原理及仿真
  • 从elf文件动态加载的过程解释got,plt及got.plt,plt.sec
  • JavaScript运算符全解析:从基础到进阶实战指南
  • 2025年中级社会工作者备考精选练习题
  • HardFault_Handler调试及问题方法
  • vue——v-pre的使用
  • Redis 面经
  • 开发指南118-背景渐变特效
  • SOC-ESP32S3部分:8-GPIO输出LED控制
  • 如何做好一份技术文档?
  • JavaSE核心知识点03高级特性03-01(集合框架)
  • AbMole| MG132(133407-82-6,M1902,蛋白酶体抑制剂)
  • 西北某县智慧水务系统新升级:能预判·会听话·秒响应的智能“水管家”上岗
  • 探索常识性概念图谱:构建智能生活的知识桥梁
  • YOLOv4论文超详细精讲(翻译+学习笔记)
  • 文章记单词 | 第112篇(六级)
  • Flask框架全方位深度解析
  • Python |GIF 解析与构建(2):状态机解析
  • 2000-2023年各地级市进出口总额/地级市对外经济贸易数据
  • queue和priority_queue及其函数
  • ld: cpu type/subtype in slice (arm64e.old) does not match fat header (arm64e)
  • mysql连接池druid监控配置
  • 2025年工会考试题库及答案
  • MyBatis 中 parameterType 属性
  • AutoCAD Electrical 自定义多极元件
  • 反本能---如何对抗你的习以为常
  • 二分算法(灵神边界处理复习)
  • 电子电路:能认为电抗也是在做功吗?