Unity中EventHandler与EventArgs的使用
首先EventArgs是一个类,如:
public class EventArgs
{}
而EventHandler是一个申明好的委托,如:
Action m_Action
这样的委托,只是他给定义好的一个,内部是这样的:
public delegate void EventHandler(object sender, TEventArgs e)
下面是使用,一个是没有参数,一个是有参数,参数的意思就是EventArgs中是否有数据
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class PlayerControl : MonoBehaviour
{/// <summary>/// 移动结束后触发/// </summary>public event EventHandler MoveComplete;public event EventHandler<PlayerMoveEventArgs> MoveCompleteHandle;void Start () { }void Update (){if (Input.GetMouseButtonDown(0)){//PlayerMoveComplete();PlayerMoveCompleteHandle();}}private void PlayerMoveComplete(){if(MoveComplete != null)MoveComplete(this,EventArgs.Empty);}private void PlayerMoveCompleteHandle(){if (MoveCompleteHandle != null){PlayerMoveEventArgs player = new PlayerMoveEventArgs("HHHHHHHH");MoveCompleteHandle(this, player);}}
}
管理类:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class GameManager : MonoBehaviour
{public static GameManager Instance;public PlayerControl Player;void Awake(){Instance = this;}void Start (){//Player.MoveComplete += HandleMoveComplete;Player.MoveCompleteHandle += PlayerMoveCompleteHandle;}void HandleMoveComplete(object sender, EventArgs e){Debug.Log("1111111");}void PlayerMoveCompleteHandle(object sender, PlayerMoveEventArgs e){PlayerMoveEventArgs player = e as PlayerMoveEventArgs;Debug.Log(e.Messgae);}
}public class PlayerMoveEventArgs : EventArgs
{private string m_Message;public string Messgae { get { return m_Message; } }public PlayerMoveEventArgs(string m){m_Message = m;}
}
Unity中EventHandler与EventArgs的使用相关推荐
- Unity中使用调用Shell的命令行
Unity中使用调用Shell的命令行 有的时候我们在做unity开发的时候需要去写一些工具编辑器之外的话通常会使用python,但有时也会使用shell命令行来完成一些操作,比如我们在写一自动化打包 ...
- 学习在Unity中创建一个动作RPG游戏
游戏开发变得简单.使用Unity学习C#并创建您自己的动作角色扮演游戏! 你会学到什么 学习C#,一种现代通用的编程语言. 了解Unity中2D发展的能力. 发展强大的和可移植的解决问题的技能. 了解 ...
- 学习用C#在Unity中创建一个2D Metroidvania游戏
学习用C#在Unity中创建一个2D Metroidvania游戏 你会学到: 构建2D Unity游戏 用C#编程 玩家统计,水平提升,米尔和远程攻击 敌方人工智能系统 制定级别和级别选择 Lear ...
- 在Unity中制作4种不同的游戏
流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:8.6 GB 含课程素材 |时长:15h ...
- 学会在Unity中创建一个Match-3益智游戏 Learn To Create a Match-3 Puzzle Game in Unity
MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:48场讲座(6h 38m) |大小解压后:2.8 G ...
- Unity中创建本地多人游戏完整案例视频教程 Learn To Create A Local Multiplayer Game In Unity
Unity中创建本地多人游戏完整案例视频教程 Learn To Create A Local Multiplayer Game In Unity MP4 |视频:h264,1280x720 |音频:A ...
- C#开发Unity游戏教程之Unity中方法的参数
C#开发Unity游戏教程之Unity中方法的参数 Unity的方法的参数 出现在脚本中的方法,无论是在定义的时候,还是使用的时候,后面都跟着一对括号"( )",有意义吗?看起来最 ...
- Unity中制作游戏的快照游戏支持玩家拍快照
Unity中制作游戏的快照游戏支持玩家拍快照 有些游戏支持玩家"拍快照",也就是将游戏的精彩瞬间以图片的形式记录下来的功能.这个功能比较有趣,而且以后的用途也会很广,为此本节打算介 ...
- 如何在Unity中添加三维空间声音Spatial Sounds
hololens的声音模块是头戴环上,靠近耳朵上方的一个红色的模块,三维空间声音感效果还不错,本文主要讲述如何在项目中使用空间声音特性.我们主要讲述必须的插件组件和unity声音组件和属性的设置来确保 ...
最新文章
- 哥们,你真以为你会做这道JVM面试题?
- resin如何部署java项目_resin项目换成tomcat部署的两种方式
- 用场景来规划测试工作
- Lesson 16.1016.1116.1216.13 卷积层的参数量计算,1x1卷积核分组卷积与深度可分离卷积全连接层 nn.Sequential全局平均池化,NiN网络复现
- java ajax 点赞功能_Ajax+jQuery+bootstrap+Java实现异步点赞功能,并限制点击次数
- 哈希表的画法_智慧树知到_机械制图A_答案新版
- 全球首款5g全网通智能路由器华为5G CPE Pro发布 售价2499元
- pat1062. Talent and Virtue (25)
- prometheus监控mysql指标_使用Prometheus监控MySQL状态
- 各种格式视频,图片,音频免费下载
- 我的世界java总是停止工作_我的世界(Minecraft)Windows 10下停止工作、崩溃解决方案...
- IDEA 修改主题设置修改主题字体,编辑区字体
- cocos Creator i18n 多语言
- PHP 视频格式转换类
- java 如何调用大漠插件_java通过jaboc调用dll(大漠插件)遇到的坑,变参指针传参问题...
- python基础语法全解/数据类型/面向对象编程
- 剑指offer刷题总记——Java
- 天勤——图选择题整理
- 计算机科学期刊是b类吗,《计算机科学》体例格式
- 低代码行业风涌云起,他们靠什么跻身全球第一阵营?