【Unity】R3 CSharp 響應式編程 - 使用篇(二)

一、通用的事件監聽用法

using System;using R3;using UnityEngine;namespace Aladdin.Standard.Observable.Common{public class CommonObservable : MonoBehaviour{//	默認會調用1次public          SerializableReactiveProperty<int> serializableReactiveProperty;//	默認會調用1次public readonly ReactiveProperty<int>             reactiveProperty = new ReactiveProperty<int>();private void Start(){this.serializableReactiveProperty.Subscribe((value) => { Debug.LogError($"Unity Serializable Value Change: {value}"); });this.reactiveProperty.Subscribe((value) => { Debug.LogError($"Reactive Property Value Change: {value}"); });//	執行到規定幀數后回調,下文是到 999 幀后回調。R3.Observable.TimerFrame(999).Subscribe(value =>{Debug.LogError($"{Time.frameCount}");});//	500ms 回調內容R3.Observable.Timer(TimeSpan.FromMilliseconds(500)).Subscribe(_ => { Debug.LogError($" 500ms 回調一次"); });//	立即調用 2 次,每次的值是 1R3.Observable.Repeat(1, 2).Subscribe(value => { Debug.LogError($"立即調用 2 次, 每次的值是:{value}"); });//	間隔 1000ms 調用, 可以嘗試使用 ReactiveProperty 額外記錄一個值,目前還不知道怎樣監聽調用次數, 可使用 Concat 嘗試R3.Observable.Interval(TimeSpan.FromMilliseconds(1000)).Subscribe(_ =>{this.reactiveProperty.Value += 1;});//	雙擊,如果第二次按鍵在第一次按鍵的 250ms 的間隔內,那就是雙擊Observable<Unit> clickStream = R3.Observable.EveryUpdate().Where(_ => Input.GetMouseButtonDown(0));clickStream.Chunk(clickStream.Debounce(TimeSpan.FromMilliseconds(250))).Where(xs => xs.Length >= 2).Subscribe(_ => Debug.Log("Mouse double click detected!"));//	連接兩個 Observablevar concat1 = R3.Observable.Timer(TimeSpan.FromMilliseconds(1000));R3.Observable.Concat(concat1, concat1).Subscribe(_ =>{Debug.LogError("Concat: 連接兩個 Observable, 按順序執行");});//	連接兩個 Observablevar merge1 = R3.Observable.Timer(TimeSpan.FromMilliseconds(1000));R3.Observable.Merge(merge1, merge1).Subscribe(_ =>{Debug.LogError("Merge: 合并兩個 Observable, 并行執行");});}}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/83585.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/83585.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/83585.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【原理解析】為什么顯示器Fliker dB值越大,閃爍程度越輕?

顯示器Fliker 1 顯示器閃爍現象說明2 Fliker量測方法2.1 FMA法2.2 JEITA法問題答疑&#xff1a;為什么顯示器Fliker dB值越大&#xff0c;閃爍程度越輕&#xff1f; 3 參考文獻 1 顯示器閃爍現象說明 當一個光源閃爍超過每秒10次以上就可在人眼中產生視覺殘留&#xff0c;此時…

3.需求分析與測試用例設計方法

設計方法 測試點 定義: 測試時需要考慮的可測試方面&#xff0c;不同公司可能稱為"檢查點"或其它名稱特點: 是需求分析的最后一個環節&#xff0c;用于解決"測哪里"和"怎么測"的問題舉例說明: 如同打架時的各種招數&#xff0c;如直接約架、設…

IEC 61347-1:2015 燈控制裝置安全標準詳解

IEC 61347-1:2015燈控制裝置安全標準詳解 IEC 61347-1:2015 是國際電工委員會&#xff08;IEC&#xff09;發布的燈控制裝置第1部分&#xff1a;通用要求和安全要求的核心標準&#xff0c;為各類照明用電子控制設備設定了全球通用的安全基準。該標準適用于獨立式或內置于燈具/…

從 GPT 的發展看大模型的演進

這是一個技術爆炸的時代。一起來看看 GPT 誕生后&#xff0c;與BERT 的角逐。 BERT 和 GPT 是基于 Transformer 模型架構的兩種不同類型的預訓練語言模型。它們之間的角逐可以從 Transformer 的編碼解碼結構角度來分析。 BERT&#xff08;Bidirectional Encoder Representatio…

多目標粒子群優化算法(MOPSO),用于解決無人機三維路徑規劃問題,Matlab代碼實現

多目標粒子群優化算法&#xff08;MOPSO&#xff09;&#xff0c;用于解決無人機三維路徑規劃問題&#xff0c;Matlab代碼實現 目錄 多目標粒子群優化算法&#xff08;MOPSO&#xff09;&#xff0c;用于解決無人機三維路徑規劃問題&#xff0c;Matlab代碼實現效果一覽基本介紹…

貪心算法應用:集合覆蓋問題詳解

貪心算法與集合覆蓋問題詳解 貪心算法在組合優化問題中展現出獨特優勢&#xff0c;集合覆蓋問題&#xff08;Set Cover Problem&#xff09;是其中的經典案例。本文將用2萬字全面解析貪心算法在集合覆蓋/劃分中的應用&#xff0c;涵蓋算法原理、正確性分析、Java實現、復雜度證…

MCP:讓AI工具協作變得像聊天一樣簡單 [特殊字符]

想象一下,你正在處理一個項目,需要從A平臺查看團隊討論,從B平臺獲取客戶信息,還要在GitHub上檢查代碼進度。傳統做法是什么?打開三個不同的網頁,在各個平臺間來回切換,復制粘貼數據,最后還可能因為信息分散而遺漏重要細節。 聽起來很熟悉?這正是當前工作流程的痛點所…

docker不用dockerfile

好的&#xff01;既然你不想使用 Dockerfile&#xff0c;我們就完全不寫 Dockerfile&#xff0c;改用你 Leader 提到的思路&#xff1a; 用基礎鏡像啟動一個容器 → 手動在容器里安裝依賴和復制項目 → 保存為新鏡像 這個方式更直觀&#xff0c;就像“你進入容器自己配置環境&a…

React與Vue核心區別對比

React 和 Vue 都是當今最流行、功能強大的前端 JavaScript 框架&#xff0c;用于構建用戶界面。它們有很多相似之處&#xff08;比如組件化、虛擬 DOM、響應式數據綁定&#xff09;&#xff0c;但也存在一些核心差異。以下是它們的主要區別&#xff1a; 1. 核心設計與哲學 Rea…

強化學習-深度學習和強化學習領域

在深度學習和強化學習領域&#xff0c;SFT&#xff08;Supervised Fine-Tuning&#xff09; 和 GRPO&#xff08;可能指 Gradient-based Policy Optimization 或 Reinforcement Learning with Policy Optimization&#xff09;是兩種不同的訓練范式&#xff0c;常用于模型微調或…

在 ABP VNext 中集成 Serilog:打造可觀測、結構化日志系統

&#x1f680; 在 ABP VNext 中集成 Serilog&#xff1a;打造可觀測、結構化日志系統 &#x1f4da; 目錄 &#x1f680; 在 ABP VNext 中集成 Serilog&#xff1a;打造可觀測、結構化日志系統1. 為什么要使用結構化日志&#xff1f; &#x1f914;2. 核心集成步驟 &#x1f6e…

API異常信息如何實時發送到釘釘

#背景 對于一些重要的API&#xff0c;開發人員會非常關注API有沒有報錯&#xff0c;為了方便開發人員第一時間獲取錯誤信息&#xff0c;我們可以使用插件來將API報錯實時發送到釘釘群。 接下來我們就來實操如何實現 #準備工作 #創建釘釘群 如果已有釘釘群&#xff0c;可以跳…

Stone 3D新版本發布,添加玩家控制和生物模擬等組件,增強路徑編輯功能,優化材質編輯

后續版本號改為構建日期加小版本&#xff0c;所以最新版本為20250603.01 功能更新如下&#xff1a; 1. 改寫fps-controls組件&#xff0c;簡化游戲應用的創建&#xff0c;你只需要一個場景glb&#xff0c;然后給Scene節點添加fps-controls組件&#xff0c;即可完成一個第一人…

【C++11】折疊引用和完美轉發

目錄 一. 前言二. 引用折疊引用折疊的規則 三. 完美轉發完美轉發適用場景完美轉發底層實現思考1思考2 一. 前言 在函數傳參時&#xff0c;如果想保持某個參數的屬性不改變&#xff0c;需要完美轉發&#xff0c;而完美轉發的實現需要折疊引用的幫助 二. 引用折疊 在語法上&am…

Vue 樹狀結構控件

1、效果圖如下所示&#xff1a; 2、網絡請求的數據結構如下&#xff1a; 3、新建插件文件&#xff1a;menu-tree.vue&#xff0c;插件代碼如下&#xff1a; <template><div class"root"><div class"parent" click"onParentClick(pare…

洛谷P12610 ——[CCC 2025 Junior] Donut Shop

題目背景 Score: 15. 題目描述 The owner of a donut shop spends the day baking and selling donuts. Given the events that happen over the course of the day, your job is to determine the number of donuts remaining when the shop closes. 輸入格式 The first …

數據挖掘頂刊《IEEE Transactions on Knowledge and Data Engineering》2025年5月研究熱點都有些什么?

本推文對2025年5月出版的數據挖掘領域國際頂級期刊《IEEE Transactions on Knowledge and Data Engineering》進行了分析&#xff0c;對收錄的62篇論文的關鍵詞與研究主題進行了匯總&#xff0c;并對其中的研究熱點進行了深入分析&#xff0c;希望能為相關領域的研究人員提供有…

華為OD機試真題——最小的調整次數/特異性雙端隊列(2025B卷:100分)Java/python/JavaScript/C++/C語言/GO六種最佳實現

2025 B卷 100分 題型 本文涵蓋詳細的問題分析、解題思路、代碼實現、代碼詳解、測試用例以及綜合分析; 并提供Java、python、JavaScript、C++、C語言、GO六種語言的最佳實現方式! 2025華為OD真題目錄+全流程解析/備考攻略/經驗分享 華為OD機試真題《最小的調整次數/特異性雙端…

2024年ESWA SCI1區TOP,自適應學習灰狼算法ALGWO+無線傳感器網絡覆蓋優化,深度解析+性能實測

目錄 1.端午快樂2.摘要3.灰狼算法GWO原理4.改進策略5.結果展示6.參考文獻7.代碼獲取8.讀者交流 1.端午快樂 今天端午節&#xff0c;祝各位朋友端午安康&#xff0c;闔家平安&#xff01; 2.摘要 無線傳感器網絡&#xff08;WSNs&#xff09;是一種被廣泛應用的新興技術&…

ADI硬件筆試面試題型解析下

本專欄預計更新60期左右。當前第17期-ADI硬件. ADI其硬件工程師崗位的招聘流程通常包括筆試和多輪技術面試,考察領域涵蓋模擬電路設計、數字電路、半導體器件和信號處理等。 本文通過分析平臺上的信息,匯總了ADI硬件工程師的典型筆試和面試題型,并提供詳細解析和備考建議,…