2013-03-07 21 views
8

有沒有什麼方法可以通過Unity3d與iOS的VoiceOver輔助功能進行通信?我們有一個需要訪問的應用程序,我們不知道如何去做。如何爲iOS添加Unity3d輔助功能

由於我們需要語言支持,因此無法創建自己的自定義VoiceOver,因此我們需要本地化。我們的直覺告訴我們要通過一個插件與iOS進行交流,然而,iOS硬件似乎無法捕捉到統一的水龍頭,但它似乎忽略了我們的一些手勢。

任何建議,將不勝感激。

+0

這看起來很有用:https://www.assetstore.unity3d.com/en/#!/content/9555 – 2015-03-07 21:27:28

回答

0

Unity3d不支持VoiceOver用於提供允許該功能運行的掛鉤的.ipa文件。因此,該功能不能直接用於使應用程序更易於訪問。

因此,必須使用開發基於Unity內VoiceOver的系統的方法,該方法可以利用一些當前的VoiceOver約定 - 即重新創建VoiceOver在Unity中處理頁面和應用程序的方法。

除此之外,我不確定您可以做什麼,而不必花費很長時間來創建自己的語言支持,並使用與VoiceOver類似的輔助功能。

+0

你是什麼意思「Unity3d不支持.ipa文件」?一個ipa文件只是一個zip文件。 – 2015-03-13 01:34:14

1

有一些注意事項here

一般情況下,你沒有爲你的應用項目可訪問元素,因爲標準的UIKit控件和視圖是默認訪問。但是,如果您的視圖包含需要殘障用戶訪問的非視圖項目(如圖標或文本圖片),則可以創建輔助功能元素來表示它們。在這種情況下,包含視圖應該實現UIAccessibilityContainer非正式協議,並使用此方法創建一個輔助元素來表示應該暴露給輔助應用程序的每個項目。

here

的UIAccessibilityContainer非正式協議提供的UIView子類,使作爲單獨的元件可訪問的選定的組件的方法。例如,視圖可能包含圖標或繪製的文本,對最終用戶而言,它們會以單獨項目的形式顯示和運行。但是由於這些組件不是作爲UIView的實例實現的,它們不會自動被殘疾用戶訪問。因此,這樣的容器視圖應實現UIAccessibilityContainer方法,以向輔助應用程序(如VoiceOver)提供有關這些組件的可訪問性信息。

我不熟悉使用Unity本身,但是這似乎是可能破解含有以支持輔助功能 - 你可以建立一套UIAccessibilityElemets表示在屏幕上當前可見的項目。

+0

對,但是如何將Unity中的元素表示爲UIView? – 2015-03-13 22:18:11

+0

那麼,你可以將每個Unity元素對應到'UIAccessibilityElemet'類的對象。然後將它們添加到應用程序的最頂層視圖 – 2015-03-16 09:16:35

-1

不幸的是,Unity和VoiceOver不能在本地一起工作,因爲Unity負責所有渲染 - 包括UI。這就是VoiceOver或任何其他屏幕閱讀器無法訪問UI並使其可訪問的原因。 正如你已經提到的那樣,真正你唯一的選擇就是在Unity內部實現相同的功能。 你可以自己實現這個,或者使用一個爲你做的插件。

有一個插件可以爲Unity UI重新創建屏幕閱讀器功能。它像VoiceOver和TalkBack一樣工作,並使用本機VoiceOver語音進行文本到語音輸出。 https://www.assetstore.unity3d.com/en/#!/content/87935

+1

歡迎使用堆棧溢出!只是鏈接到自己的圖書館或教程不是一個好的答案。鏈接到它,解釋爲什麼它解決了這個問題,提供如何這樣做的代碼,並宣稱你寫了它,這是一個更好的答案。請參閱:[**什麼意思是「良好」的自我推廣?**](// meta.stackexchange.com/q/182212) – 2017-05-03 20:09:21

+0

非常真實,我編輯帖子以添加更多解釋。 – 2017-06-08 17:19:23