創作內容

0 GP

進階 C# 編程技術(一) 委託與事件 - Event

作者:Aucer│2022-06-14 09:03:42│巴幣:0│人氣:131
【C# 】委託與事件 - Event
  by Aucer

【Event】
打開Unity 新建專案
在 Asset 資料夾內,按右鍵新增Scripts資料夾,按右鍵創建
Player.cs
Project_Event.cs

【Player.cs】
Player.cs 這裡不需要使用 Monobehavior,Ctrl+ A,Delete 全部刪掉
只需要用到class 的功能
--------------------------------------------------------------------------------------------
public class Player
{
    public delegate void myDelegate();//定義 委託原型
    public event myDelegate d1;// 再用 委託原型 創建 委託事件
    // 用 委託原型 創建 委託事件 時 加上 event 就是 【event】(事件)
    // 對委托形成限制 讓委託的調度 只限制在這個類的內部
    public void Call()
    {
        if(d1 != null)
        {
            d1();
        }
    }
}
--------------------------------------------------------------------------------------------
【Project_Event.cs】
using System;
using UnityEngine;

public class Project_Event : MonoBehaviour
{
    void Start()
    {
        Player player = new Player();
        player.d1 += Test5;
        // player.d1();//直接使用事件委託本體,無法執行,會報錯
        // 事件對調度做出了限制
        // 所以在Player.cs , Player 的 class之中
        // 新增了public void Call() { if (d1 != null){ d1();} }
        // 使 d1 能在外部 利用 Call() 調度。
       player.Call();
    }
    void Test5()
    {
        Debug.Log("執行 Test 5 !");
    }
}

【注】:
委託 其實包含在 using UnityEngine; 中
在Unity 專案中 using System;可刪掉。
不過如果是在visual studio 專案中
using System 就不能刪掉。

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=5485220
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

喜歡★ck7william19 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:進階 C# 編程技術(一... 後一篇:Unity 預設 函數執...

追蹤私訊切換新版閱覽

作品資料夾

s9051035404大家
日本實話怪談翻譯-業務K系列更新了~歡迎來我的小屋坐坐~看更多我要大聲說10小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】