Unity3d使用delegate

本文通过一个Unity脚本示例介绍了C#中委托的基本用法,包括定义委托、委托变量的赋值及调用等操作。展示了如何在游戏开发中利用委托实现灵活的方法调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using UnityEngine;
using System.Collections;

public class delegateTest : MonoBehaviour {
    delegate void PrintSomething();//定义委托,注意返回类型和参数
    PrintSomething m_print;//定义委托变量(委托是一个数据类型)
    void Start() {
        m_print = GUI1;//使委托变量指向一个方法,亦可以使用+=运算符使委托变量指向多个方向,执行m_print();时就会执行附加在其上的所有方法。
    }
	//要执行的委托方法
    void GUI1() {
        Debug.Log("GUI01");
        GUI.Label(new Rect(100,100,100,100),"GUI1");
    }

    void GUI2()
    {
        Debug.Log("GUI02");
        GUI.Label(new Rect(100, 100, 100, 100), "GUI2");
    }

    void OnGUI() {
        if (GUI.Button(new Rect(0, 0, 100, 100), "GUI1")) {
            m_print = GUI1;//改变委托变量指向的方法
        }
        if (GUI.Button(new Rect(100, 0, 100, 100), "GUI2"))
        {
            m_print = GUI2;
        }
        m_print();//执行委托变量指向的方法
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值