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

DeepSeek教unity------事件管理

1. 定义事件类型

定义一个枚举来表示不同类型的事件。组织和识别不同的事件。

2. 创建事件参数类

为了让事件携带数据,创建一个通用的事件参数类或者为每个事件类型创建特定的参数类。

3. 实现事件管理器

创建一个EventManager类,用于管理事件的注册、注销和触发。

/****************************************************文件:EventManager.cs作者:Edision日期:#CreateTime#功能:事件管理
*****************************************************/using System;
using System.Collections.Generic;public enum EventType
{PlayerJump,PlayerAttack,ItemCollected,// 添加更多事件类型...
}public interface IEventParam { }public static class EventManager
{private static Dictionary<EventType, Action<IEventParam>> eventDictionary = new Dictionary<EventType, Action<IEventParam>>();public static void RegisterListener<T>(EventType eventType, Action<T> listener) where T : IEventParam{if (!eventDictionary.ContainsKey(eventType)){eventDictionary[eventType] = param => listener((T)param);}}public static void UnregisterListener<T>(EventType eventType) where T : IEventParam{if (eventDictionary.ContainsKey(eventType)){eventDictionary.Remove(eventType);}}public static void TriggerEvent(EventType eventType, IEventParam eventParam){if (eventDictionary.TryGetValue(eventType, out var action) && action != null){action(eventParam);}}
}
/****************************************************文件:PlayerJumpEventArgs.cs作者:Edision日期:#CreateTime#功能:玩家跳跃事件参数
*****************************************************/public class PlayerJumpEventArgs : IEventParam
{public float JumpForce;public PlayerJumpEventArgs(float jumpForce){JumpForce = jumpForce;}
}

使用:

/****************************************************文件:TestEvent.cs作者:Edision日期:#CreateTime#功能:使用代码测试
*****************************************************/using UnityEngine;public class TestEvent : MonoBehaviour
{private void Awake(){// 注册监听器EventManager.RegisterListener<PlayerJumpEventArgs>(EventType.PlayerJump, OnPlayerJump);}private void OnPlayerJump(PlayerJumpEventArgs args){Debug.Log($"Player jumped with force: {args.JumpForce}");}private void Update(){if (Input.GetKeyDown(KeyCode.I)){// 触发事件EventManager.TriggerEvent(EventType.PlayerJump, new PlayerJumpEventArgs(5f));}if (Input.GetKeyDown(KeyCode.O)){// 移除事件EventManager.UnregisterListener<PlayerJumpEventArgs>(EventType.PlayerJump);}}}

相关文章:

DeepSeek教unity------事件管理

1. 定义事件类型 定义一个枚举来表示不同类型的事件。组织和识别不同的事件。 2. 创建事件参数类 为了让事件携带数据&#xff0c;创建一个通用的事件参数类或者为每个事件类型创建特定的参数类。 3. 实现事件管理器 创建一个EventManager类&#xff0c;用于管理事件的注册…...

确保设备始终处于最佳运行状态,延长设备的使用寿命,保障系统的稳定运行的智慧地产开源了

智慧地产视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。通过计算机视觉和…...

RedisTemplate存储含有特殊字符解决

ERROR信息: 案发时间: 2025-02-18 01:01 案发现场: UserServiceImpl.java 嫌疑人: stringRedisTemplate.opsForValue().set(SystemConstants.LOGIN_CODE_PREFIX phone, code, Duration.ofMinutes(3L)); // 3分钟过期作案动机: stringRedisTemplate继承了Redistemplate 使用的…...

28、深度学习-自学之路-NLP自然语言处理-做一个完形填空,让机器学习更多的内容程序展示

import sys,random,math from collections import Counter import numpy as npnp.random.seed(1) random.seed(1) f open(reviews.txt) raw_reviews f.readlines() f.close()tokens list(map(lambda x:(x.split(" ")),raw_reviews))#wordcnt Counter() 这行代码的…...

【NLP 22、语言模型 language model】

有时候我也想听听&#xff0c;我在你心里&#xff0c;是什么样子 —— 25.1.12 一、什么是语言模型 语言是灵活的&#xff0c;也是有规律的 了解一门语言的人可以判断一句话是否“合理” 通俗来讲&#xff0c;语言模型用来评价一句话(句子可以看作是字的组合)是否“合理”或…...

刚性平衡机建模

这两个公式是动平衡机中用于描述旋转部件振动行为的动力学方程。它们分别描述了旋转部件在平移振动和扭转振动中的运动规律&#xff0c;用于分析不平衡量对系统的影响。以下是详细解释&#xff1a; 1. 第一个公式&#xff1a;平移振动的动力学方程 M d 2 y d t 2 2 K y 0 m 1…...

【算法】双指针(上)

目录 双指针 左右指针(对撞指针) 快慢指针 移动零 双指针解题 复写零 暴力解题 双指针解题(快慢指针) 快乐数 双指针解题(快慢指针) 盛最多水的容器 暴力解题(会超时) 双指针解题(左右指针) 有效三角形的个数 暴力解题 双指针解题(左右指针) 双指针 常见的双指…...

【Linux Redis】关于用docker拉取Redis后,让虚拟机运行起来redis,并使得其可以连接到虚拟机外的navicat。

步骤一&#xff1a;拉取Redis镜像 docker pull redis 这个命令会下载最新版本的Redis镜像到你的本地Docker仓库中。你也可以指定一个具体的版本号&#xff0c;例如docker pull redis:6.2.6&#xff0c;来拉取特定版本的Redis镜像。 如果拉取遇到问题请参考【Linux AnolisOS】关…...

用deepseek学大模型04-模型可视化与数据可视化

deepseek.com: pytorch可视化工具 生成神经网络图 在 PyTorch 中&#xff0c;可视化神经网络结构的常用工具和方法有以下几种&#xff0c;以下将详细介绍它们的用法&#xff1a; 1. TensorBoard (PyTorch 官方集成) PyTorch 通过 torch.utils.tensorboard 支持 TensorBoard&a…...

一周学会Flask3 Python Web开发-post请求与参数获取

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili app.route 装饰器默认只支持get请求。假如我们要让绑定的视图函数支持其他请求方式&#xff0c;我们可以在methods属性里配置…...

第3章 .NETCore核心基础组件:3.1 .NET Core依赖注入

3.1.1 什么是控制反转、依赖注入 杨老师在书中进行了一系列的文字阐述&#xff0c;总结一下就是&#xff1a;软件设计模式中有一种叫做【控制反转】的设计模式&#xff0c;而依赖注入是实现这种设计模式的一个很重要的方式。也就是说学习依赖注入&#xff0c;是学习怎样实现控…...

cs*n 网页内容转为html 加入 onenote

csdn上有好用的内容&#xff0c;我们怎么将它们加到 onenote 里吃灰呢。 一、创建 新html create_html.py import sysdef create_html_file(filename):# 检查是否提供了文件名if not filename:print("请提供HTML文件名")return# 创建HTML内容html_content f"…...

平板作为电脑拓展屏

有线串流&#xff08;速度更快&#xff09; spacedesk 打开usb对安卓的连接 用usb线直接连接电脑和平板 无线串流&#xff08;延迟高&#xff0c;不推荐&#xff09; todesk pc和手机端同时下载软件&#xff0c;连接后可以进行远程控制或扩展屏幕 spacedesk 连接到同一个…...

Pytorch实现论文之一种基于扰动卷积层和梯度归一化的生成对抗网络

简介 简介:提出了一种针对鉴别器的梯度惩罚方法和在鉴别器中采用扰动卷积,拟解决锐梯度空间引起的训练不稳定性问题和判别器的记忆问题。 论文题目:A Perturbed Convolutional Layer and Gradient Normalization based Generative Adversarial Network(一种基于扰动卷积层…...

关系数据库标准语言SQL

1.SOL称为结构化查询语言&#xff0c;它是由1974年由Boyce和Chamberlin提出的&#xff0c;1975年至1979年IBM公司的San Jose Research Laboratory研制了关系数据库管理系统的原型系统SystemR,并实现了这种语言。 2.SQL(Structured Ouery Language)称为结构化查询语言 3.SQL数…...

AI工具篇:利用DeepSeek+Kimi 辅助生成综述汇报PPT

随着科研和学术报告需求的增加&#xff0c;如何高效地准备一份结构清晰、内容充实的PPT已成为许多研究者的挑战。 传统的PPT制作过程繁琐&#xff0c;需要大量文献收集、数据分析和设计工作&#xff0c;而AI工具能够帮助提升效率&#xff0c;减少重复劳动。 本文将介绍如何使用…...

学习总结2.18

在原本基本的数船的基础上&#xff0c;增加了船不能畸形的要求&#xff0c;船只能是矩形&#xff0c;由此需要在dfs找船前确定是否有畸形船 .* ** *. ** ** .* ** *. 出现畸形船的情况如上图&#xff0c;即两艘船有一个交集时&#xff0c;此时就可以判断出bad pl…...

electron下载文件,弹窗选择下载路径,并通知下载进度

1&#xff1a;在window.js中 引入session import { app, BrowserWindow, ipcMain, dialog, shell, session } from electron; 2&#xff1a;发送下载请求 // 在主进程监听渲染进程发送的 start-download 事件ipcMain.on(start-download, async (event, downloadUrl) > {l…...

【Docker】容器被停止/删除的方式及命令:全面解析与实践指南

文章目录 引言一、容器的生命周期二、停止容器的命令及方式1. docker stop 命令2. docker kill 命令3. docker pause 和 docker unpause 命令4. docker restart 命令 三、删除容器的命令及方式1. docker rm 命令2. docker container prune 命令3. docker rm 与 docker rmi 的区…...

线上就医全流程医药机构接入文档接口代码-医保就医接口php-demo版本

2025年2月18日11:28:03 国密算法开发库推荐 lpilp/guomi 我测试过php 7.2 - 8.0都可以兼容&#xff0c;如果有能力可以自己开发 目前已经开发了核心的接口的测试demo,并且封装了工具类直接写业务逻辑即可&#xff0c;并且已经有线上项目在使用&#xff0c;如果需要demo代码可…...

Claude 代码版权归属成谜,开发者如何应对 AI 代码版权三大难题?

鲜为人知的版权规则 简单来说&#xff0c;法律底线是&#xff1a;版权只保护人类创作的作品。美国版权局一直坚持这一观点&#xff0c;哥伦比亚特区巡回上诉法院在 Thaler 案中也支持了这一立场。2026 年 3 月&#xff0c;最高法院拒绝审理 Thaler 案的上诉&#xff0c;但这并不…...

NCM音频格式解密技术解析:实现网易云音乐加密文件转换的核心原理

NCM音频格式解密技术解析&#xff1a;实现网易云音乐加密文件转换的核心原理 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump NCM格式解密技术为音乐爱好者提供了突破数字版权限制的专业解决方案&#xff0c;通过逆向工程分析和密码学…...

从“定比分点”到“交比不变”:用初中三角形面积公式,轻松理解射影几何的核心定理

从“定比分点”到“交比不变”&#xff1a;用初中三角形面积公式&#xff0c;轻松理解射影几何的核心定理 数学的魅力往往藏在我们最熟悉的工具里。当你第一次听说"射影几何"时&#xff0c;脑海中浮现的可能是复杂的坐标系和晦涩的符号——但今天&#xff0c;我要带你…...

Qwen3-VL-2B功能体验:上传一张图,问任何关于它的问题

Qwen3-VL-2B功能体验&#xff1a;上传一张图&#xff0c;问任何关于它的问题 1. 引言 1.1 视觉理解的新体验 想象一下&#xff0c;当你看到一张复杂的图表、一张老照片或是一份文件时&#xff0c;是否曾希望有个助手能立即告诉你其中的内容&#xff1f;这就是Qwen3-VL-2B模型…...

ARM ETM架构规范勘误解析与调试优化实践

1. ARM ETM架构规范修订版O勘误解析作为一名长期从事ARM架构开发的工程师&#xff0c;我深知嵌入式追踪宏单元(ETM)在处理器调试中的关键作用。ETMv1.0至ETMv3.4版本规范中存在的技术细节问题&#xff0c;往往会导致实际开发中的"诡异"行为。让我们深入剖析这些勘误背…...

别再手动disconnect了!用Qt的QSignalBlocker优雅管理控件信号(附QComboBox实例)

优雅管理Qt控件信号的终极方案&#xff1a;QSignalBlocker深度解析 在Qt开发中&#xff0c;信号与槽机制是构建交互式界面的核心支柱&#xff0c;但这也带来了一个常见痛点——如何在特定场景下精确控制信号的触发。想象一下这样的场景&#xff1a;你正在开发一个配置工具&…...

BiCLIP:结构化几何变换在跨模态检索中的应用与优化

1. 项目背景与核心价值去年在做跨模态检索项目时&#xff0c;我深刻体会到图像和文本对齐的痛点——传统方法要么过度依赖全局特征丢失细节&#xff0c;要么陷入局部匹配缺乏整体一致性。直到看到BiCLIP这篇论文&#xff0c;才发现结构化几何变换这个思路如此精妙。它不像常规对…...

从警告到洞察:用Python warnings模块把UserWarning变成你的调试助手

从警告到洞察&#xff1a;用Python warnings模块把UserWarning变成你的调试助手 在Python开发中&#xff0c;警告&#xff08;Warning&#xff09;常被视为需要消除的"噪音"&#xff0c;但鲜有人意识到它其实是一个被严重低估的调试工具。想象一下这样的场景&#xf…...

InternGPT本地部署实战:指向性交互与多模态AI应用指南

1. 项目概述&#xff1a;当ChatGPT学会了“指指点点” 如果你和我一样&#xff0c;对ChatGPT这类大语言模型&#xff08;LLM&#xff09;的文本对话能力感到惊叹&#xff0c;但同时又觉得它在处理图像、视频这类视觉任务时&#xff0c;总隔着一层“语言描述”的纱&#xff0c;…...

spring-boot-starter-validation字段数据校验

validation 概述 spring-boot-starter-validation 是 Spring Boot 官方提供的用于数据校验的启动器&#xff0c;它基于 Bean Validation API (JSR 380) 标准&#xff0c;并默认使用 Hibernate Validator 作为其实现。这个框架能让你通过声明式的注解&#xff0c;轻松地对控制器…...