小功能⭐️Unity委托事件

简介: 小功能⭐️Unity委托事件

回调函数复习


实现功能:

发生某事情(按下某键、点击某物体),触发某事件(声明的事件),所有已订阅该事件的方法会监听到该事件被触发,所有已订阅的方法会执行


思路:

脚本1作为发布者,声明事件

脚本2:给脚本1对应的事件添加方法

脚本3:给脚本1对应的事件添加方法,执行委托

注意:单例脚本也许挂载到游戏物体上!在重新加载场景时,最好释放事件,否则可能发生问题


脚本1

using UnityEngine;
 
public class Skode_EventHandler : MonoBehaviour {
 
    public static Skode_EventHandler instance;
    private void Awake()
    {
        instance = this;
    }
    public delegate void Handler(string content);
 
    //实例委托
    public Handler GameReset;
}


脚本2

using UnityEngine;
 
public class Skode_EventHandler1 : MonoBehaviour {
 
    private void Start()
    {
        Skode_EventHandler.instance.GameReset += Skode_Method;
    }
 
    private void Skode_Method(string content)
    {
        Debug.Log("hi,woshi 1");
    }
}


脚本3

using UnityEngine;
 
public class Skode_EventHandler2 : MonoBehaviour {
 
    private void Start()
    {
        Skode_EventHandler.instance.GameReset += Skode_Method;
    }
 
    private void Skode_Method(string content)
    {
        Debug.Log("hi,woshi 2");
    }
 
    private void Update()
    {
        //回车键
        if (Input.GetKeyDown(KeyCode.Return))
        {
            if (Skode_EventHandler.instance.GameReset != null)
                Skode_EventHandler.instance.GameReset("我是Skode");
        }
    }
}


相关文章
|
10天前
|
存储 API 图形学
Unity 给Animator动画添加事件(动态的)
在 Unity 中,通过动画事件系统可在动画播放的特定时间点触发自定义函数。动态添加事件的步骤包括获取 `AnimationClip` 对象,创建并添加 `AnimationEvent`,最后调用 `Rebind()` 更新动画控制器。示例代码展示了如何在动画开始、中间和结束时触发事件,实现与游戏逻辑的交互。
|
11天前
|
图形学 UED
unity Tab键实现切换输入框功能
该脚本用于简化输入框之间的Tab键切换操作。只需将脚本挂载在InputField上,无需其他设置。脚本通过监听Tab键和Shift键组合,自动选择下一个或上一个可交互的InputField,提升用户体验。
|
6月前
|
定位技术 C# 图形学
从零开始的unity3d入门教程(二)----基本功能讲解
这是一篇Unity3D入门教程,详细介绍了Unity界面操作、游戏物体创建修改、场景搭建、玩家控制、音效添加以及游戏测试和导出的全过程。
从零开始的unity3d入门教程(二)----基本功能讲解
|
6月前
|
图形学
小功能⭐️Unity UnityEvent实现代码的选择
小功能⭐️Unity UnityEvent实现代码的选择
|
6月前
|
机器学习/深度学习 图形学 Windows
小功能⭐️unity3d KeyCode各键值说明
小功能⭐️unity3d KeyCode各键值说明
|
6月前
|
图形学 Android开发
小功能⭐️Unity调用Android常用事件
小功能⭐️Unity调用Android常用事件
|
6月前
|
图形学
小功能⭐️获取Unity游戏物体上,所挂载组件的名称
小功能⭐️获取Unity游戏物体上,所挂载组件的名称
|
6月前
|
图形学
小功能⭐️Unity截屏功能的实现
小功能⭐️Unity截屏功能的实现
|
6月前
|
图形学
小功能⭐️Unity中Texture2D、Sprite、Texture、RenderTexture、image、byte的转换
小功能⭐️Unity中Texture2D、Sprite、Texture、RenderTexture、image、byte的转换
|
5月前
|
图形学 C++ C#
Unity插件开发全攻略:从零起步教你用C++扩展游戏功能,解锁Unity新玩法的详细步骤与实战技巧大公开
【8月更文挑战第31天】Unity 是一款功能强大的游戏开发引擎,支持多平台发布并拥有丰富的插件生态系统。本文介绍 Unity 插件开发基础,帮助读者从零开始编写自定义插件以扩展其功能。插件通常用 C++ 编写,通过 Mono C# 运行时调用,需在不同平台上编译。文中详细讲解了开发环境搭建、简单插件编写及在 Unity 中调用的方法,包括创建 C# 封装脚本和处理跨平台问题,助力开发者提升游戏开发效率。
533 0