推 wix3000: 我都用Action 幾百年沒手動宣告delegate了 11/12 16:48
→ wix3000: event大部分的使用狀況還是去幫程式定義出幾個關鍵的時間 11/12 16:51
→ wix3000: 點,例如當數值發生改變、當某件事完成時等等。這點在遊 11/12 16:51
→ wix3000: 戲中也不例外,例如當回合切換時,當角色攻擊時,當返回 11/12 16:51
→ wix3000: 本陣時等等 11/12 16:51
→ wix3000: 還有我很認真的告訴你,C#的變數請用駝峰命名,然後類別 11/12 16:53
→ wix3000: 首字要大寫 11/12 16:53
推 cjcat2266: 推樓上,雖然說命名這件事是看個人喜好,但C#是微軟自 11/12 17:22
→ cjcat2266: 己維護更新的語言,VS的IntelliSense和C#外掛的某些功 11/12 17:22
→ cjcat2266: 能還是直接內定駝峰命名法,跟著用方便多多。不過我是 11/12 17:22
→ cjcat2266: 只有public field/property才用大頭駝峰法啦,protecte 11/12 17:22
→ cjcat2266: d或private還是用自己C++習慣的m_/s_/g_/k開頭駝峰命名 11/12 17:22
→ cjcat2266: 法 11/12 17:22
推 cjcat2266: 也就是其他人會看到的interface命名法遵照微軟建議 11/12 17:23
推 cjcat2266: 另外回歸正題,event其實只是個工具,我認為用自己或 11/12 17:25
→ cjcat2266: 團隊認為合理的工具對症下藥就好,不必拘泥於用或不用 11/12 17:25
→ cjcat2266: 特定工具 11/12 17:25
→ jerryklu: unreal也會偵測駝峰命名在編輯器中顯示會自動多空格 11/12 23:11
推 breakself: Event可以拿來斷耦合,例如在MVC架構中可以用Event傳出 11/17 01:05
→ breakself: 去,減少不同Class交互Reference的狀況 11/17 01:05
推 wulouise: 最後一段,我覺得問題是這個event不明確,或是資料不足 11/17 22:18
→ wulouise: 原po可以舉一個具體的例子來提問,比較能釐清你的疑問 11/17 22:18
推 wulouise: 如果不了解bad smell是甚麼,可以google design pattern 11/17 22:20
推 wulouise: 有點想不太到什麼情況是不該收event卻收了還要不做事 11/17 22:22
我在網路上看到的例子是人物撿東西
直接的寫法:
人物撿東西,從人物送一個getcomponent到UI去,在UI裡面加入東西
event的寫法:
人物撿東西->觸發event
UI->接收event,在物品欄裡面顯示
但是如果我今天有一大堆人物,一大堆的人物對應一大堆的UI,一大堆的人物撿了一大
堆的物品觸發一大堆的event
就不知道誰的event丟給誰要另外寫判斷了
※ 編輯: knife5566 (123.194.164.208), 11/18/2018 01:00:15
推 cjcat2266: 那些都可以成為客製event的參數 11/18 09:25
推 wulouise: delegate可以自訂變數,你只要把從哪來,去哪裡標明就沒 11/18 13:16
→ wulouise: 問題了 11/18 13:16
推 wulouise: 設計上應該是所有取得道具event給ui supervisor 11/18 13:18
→ wulouise: ui supervisor決定要更新到那,不會有混淆的問題出現 11/18 13:19
原來如此 這樣就能保證最後event的接收者只有一個
不過從supervisor到ui中間這段還是註定要有個直接給值的過程就是了
※ 編輯: knife5566 (123.194.164.208), 11/18/2018 19:02:01
推 wulouise: 我只是提供一種做法,建議你看看design pattern 11/19 19:42