Unity Rewired高階輸入外掛程式學習日記

2021-10-01 13:57:48 字數 2158 閱讀 2936

//根據索引返回指定玩家控制器

player playercontroller;

playercontroller=reinput.players.

getplayer(0

);//根據控制器型別和category(類別)返回符合條件的所有控制器map

playercontroller.controllers.maps.

getmapsincategory

(controllertype.keyboard,

0,rewiredconsts.category.ui)

//(rewiredconsts.category.ui:該變數為外掛程式中匯出的類變數.方便呼叫,實際為int值)

//根據選定的控制器型別(鍵鼠/手柄),控制器id(預設0),型別返回乙個對應的controllermap

reinput.players.

getplayer(0

).controllers.maps.

getfirstmapincategory

(controllertype.keyboard,

0, rewiredconsts.category.ui)

;//根據上乙個方法返回的controllermap,可以遍歷獲得所有的action 或者通過action id找到對應action現在的鍵位

string keyname=controllermap.

getfirstelementmapwithaction

(rewiredconsts.rewiredaction.uisubmit)

;//暫時關閉某個action

list _actionlist;

dictionary<

int,

int> _oldaction;

//呼叫這個方法 根據actionid查詢玩家控制器中對應的action

_player.controllers.maps.

getelementmapswithaction

(int actionid,

bool skipdisabledmaps, list results)

;//可以通過迴圈賦值actionid達到暫時關閉對應action事件的功能,把actionid修改為-1 修改前的action值記得儲存

for(

int i =

0; i < _actionlist.count; i++

)//復原actionid

for(

int i =

0; i < _actionlist.count; i++

)//通過委託新增給reinput的必要引數

inputactioneventdata data

//獲取當前按鈕的按下狀態,因為在委託註冊時就已指定actionid ,如果不指定,則該data不一定是需要的action data

data.

getbuttondown()

//獲得該按鈕負狀態的按下,如果action為axis型別,則有positive 和negative兩種狀態,簡稱為正負狀態(例:上和下,左和右)

data.

getnegativebuttondown()

//當按住按鈕指定time的時間時,返回保持當前按鈕狀態(例:按下按鈕0.3秒後,該方法一直返回true,鬆開重置)

data.

getbuttontimedpress

(float time)

//負狀態的方法,其他同上

data.

getnegativebuttontimedpress

(float time)

//當按住按鈕指定time的時間時,返回一次buttondown狀態(例:按下按鈕0.3秒後,該方法返回一次true,鬆開重置)

data.

getbuttontimedpressdown

(float time)

//當按鈕按住指定時間後,返回指定時間的當前按鈕狀態(例:按下按鈕0.3秒後,該方法一直返回true,0.5秒後返回false,直到鬆開下一次按下)

data.

getbuttontimedpress

(float time,

float expirein)

;//負狀態都有對應的方法,不多贅述

Structured Streaming 輸入輸出

sparksession.readstream 返回乙個datastreamreader介面物件,可以通過該物件對輸入源進行引數配置,最後返回dataframe dataset物件。val csvdf spark readstream option sep schema userschema csv...

橋牌筆記 輸張墊輸張

南主打4h。西拿第一墩梅花後,換攻小方塊。看上去只有3個輸張,2個梅花,1個將牌。但有乙個危險,看來西的方塊是單張。如果莊家馬上掉將,西會用紅桃a拿住,打小梅花到到東家的a上手,東再打回方塊給西家將吃,從而定約下一。如何防止方塊被吃掉?關鍵是要切斷梅花的橋路,採用輸張墊輸張的辦法。西家拿黑桃 的可能...

使用OutputDebugString輸出除錯資訊

概要 在編寫控制台程式的時候我們經常會使用printf輸出除錯資訊,使我們了解程式的狀態,方便除錯,但是當編寫非控制台程式的時候這種方法就行不通了。可以使用以下方法 1 使用log機制 2 用trace巨集 3 其他 首先,使用log機制的話要先寫乙個log系統,麻煩。而關於trace巨集,查了資料...