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

【解决】OnTriggerEnter/OnTriggerExit 调用匿名委托误区的问题

开发平台:Unity
开发语言:CSharp 6.0
开发工具:Visual Studio 2022

问题背景


public void OnTriggerEnter(Collider collider)
{
	output.OnInteractionNoticed += () => OnInteractionTriggered?.Invoke();
}

public void OnTriggerExit(Collider collider)
{
	output.OnInteractionNoticed -= () => OnInteractionTriggered?.Invoke();
}

在完成 “订阅 + 注销” 后,订阅响应仍然存在。

问题解决 | 匿名委托


问题根源:匿名委托
lambda 表达式本质是 实例化新的委托类型。导致 订阅 + 注销 均不属于同一实例对象。

使用显式委托实例

public void OnNoticed() => OnInteractionTriggered?.Invoke();

对应的订阅如下:

public void OnTriggerEnter(Collider collider) => output.OnInteractionNoticed += OnNoticed;
public void OnTriggerExit(Collider collider) => output.OnInteractionNoticed -= OnNoticed;

相关文章:

  • 广州网站建设商家百度提交网站入口网址
  • 网站设计 上海好视通视频会议app下载安装
  • 电子商务网站与建设实践报告网站网络营销公司
  • 乐云seo商城网站建设seo 资料包怎么获得
  • 网站收录作用网站运营
  • 日照建站推广页面
  • Wireshark:自定义类型帧解析
  • el-switch切换之前二次确认
  • HarmonyOS NEXT组件深度全解:十大核心组件开发指南与实战
  • 三个小时学完vue3 —— 简单案例(二)
  • 力扣 划分字母区间
  • linux有哪些常用命令?
  • 华为在不同发展时期的战略选择(节选)
  • 达梦数据库系列之安装及Mysql数据迁移
  • Spring 集成 MyBatis 操作指南(详细实例)
  • 数据结构:树的概念
  • React Router 完全指南:从基础到高级实践
  • 数据基础4: 线性代数基础行列式(矩阵)
  • ctfshow——域名TXT记录泄露
  • React状态管理进阶(四):从Redux到原子革命的终极指南
  • 基于django图书信息管理系统的搭建(增删改查)
  • MySQL系列之远程管理(安全)
  • 前端性能优化
  • 【Java】Tomcat日志
  • ERP系统的库存模块业务逻辑及设计
  • 剖析Kafka持久化底层原理