台灣最大程式設計社群網站
線上人數
1139
 
會員總數:243277
討論主題:188067
歡迎您免費加入會員
討論區列表 >> C# >> MethodInvoker委派問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
MethodInvoker委派問題
價值 : 150 QP  點閱數:118 回應數:9

樓主

chi
門外漢
0 2
35 6
發送站內信

目前使用Unity撰寫C#程式
但原本先用C#寫的部分有使用到MethodInvoker委派
轉到Unity就沒辦法執行了
因為非表單所以沒辦法在開頭打using
那還有什麼替代的方法嗎?

以下是部分程式
void _thinkGearWrapper_ThinkGearChanged(object sender, ThinkGearChangedEventArgs e)
{
BeginInvoke(new MethodInvoker(delegate //需要更改為本行
{
if (e.ThinkGearState.PoorSignal == 0)
{

label2.Text = "專注: " + e.ThinkGearState.Attention;

}

}));
}


搜尋相關Tags的文章: [ Unity ] , [ C# ] ,
本篇文章發表於2018-10-05 15:32
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

春天
檢舉此回應
我猜原本是因為跨執行續調用UI的問題才會這樣寫
Unity有這個問題嗎?
本篇文章回覆於2018-10-05 15:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

chi
檢舉此回應
春天大大,
原本的確是因為跨執行緒調用UI所以這樣寫
所以在Unity也會有。
本篇文章回覆於2018-10-05 16:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

chi
檢舉此回應
再轉換到Unity的時候很天真以為不用委派拿掉也沒發生錯誤,
可是在執行的時候專注值就不會跑出來了ˊˋ
本篇文章回覆於2018-10-05 16:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

春天
檢舉此回應
有修改後的Unity版本可以看?
本篇文章回覆於2018-10-05 17:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

chi
檢舉此回應
抱歉春天大這麼晚回覆您,
Unity程式碼的部分其實與這無異
只是在text的部分有另外做設定
以前沒接觸過Unity
所以其實我只是複製後貼過去…
本篇文章回覆於2018-10-09 09:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

春天
檢舉此回應
label2.Text
label是Form或wpf的東西,你Unity用的大概是NGUI或UGUI的東西 也有label?
本篇文章回覆於2018-10-09 09:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

chi
檢舉此回應
我希望做成的樣子是運用玩家流血回寫(血條)的概念,將專注值表現在血條上。
現在這樣做主要是先看到底能不能抓到值,但是沒抓到。

可是您好像說到重點了,Unity不能用label
所以我只是單純用text在做
我目前的方式是拉個Button以及Text,
然後按下按鈕 腦波儀即會開始連接 Text的部分會跑出 專注: + 數值
這部分是我在單純C#下寫的,且可以執行。

所以我轉到Unity的時候也是用同樣方法,
直接複製過去然後是修改了label以及Button的部分,
只是我當初貼來這裡好像是貼到C#的程式碼了
我在Unity有先
  public text S;
才是S.Text = "專注: " + e.ThinkGearState.Attention;
但還是因為 MethodInvoker無法抓到值
本篇文章回覆於2018-10-09 11:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

春天
檢舉此回應
跟MethodInvoker無關

Unity有自己的一套

你有拉一個text到你的腳本?

看第六個步驟
本篇文章回覆於2018-10-09 13:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

chi
檢舉此回應


Unity有自己的一套 是指他有別的方式的意思嗎?

我現在的問題主要是抓不到數值
本篇文章回覆於2018-10-11 13:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.