Bagaimana cara mendukung pena Surface di Unity?

18

Game kami bekerja sangat baik dengan sentuhan atau mouse, tetapi pena Surface sepertinya tidak mendaftar sebagai alat penunjuk sama sekali. Bagaimana kami dapat mendukung pena di Persatuan dalam bangunan asli?

Pertanyaan ini di situs Unity Answers menyarankan agar kita dapat membangunnya sebagai aplikasi UWP, tetapi itu berarti membatasi diri kita pada subset kerangka kerja .NET yang sangat terbatas (khususnya, kita kehilangan banyak pustaka Serialisasi).

Gregory Avery-Weir
sumber
Bisakah Anda memperlakukannya sebagai input sentuhan?
Evorlor
@Everlor, tidak mendaftar ke Unity sebagai input sentuh. Jika Anda tahu cara membuatnya, itu akan luar biasa.
Gregory Avery-Weir
@ ArcaneEngineer Saya tidak yakin; saat ini (1) terlihat sangat rumit dan saya tidak yakin bagaimana melakukannya (2) sama sekali. Mendukung salah satu sistem input bawaan OS sepertinya tidak terlalu sulit, tetapi saya tidak dapat menemukan sumber daya sama sekali.
Gregory Avery-Weir
2
Saya tidak menemukan jawaban di tempat lain, seperti Anda. Untuk (2), Anda memerlukan DLL yang dipanggil oleh aplikasi Unity Anda, atau layanan Windows (atau aplikasi Win jika layanan tidak akan melakukan pekerjaan) berjalan di samping aplikasi Anda. Anda perlu mengambil input dalam layanan / aplikasi itu, dari Microsoft API yang sesuai (menurut saya, Pena), dan merutekan data itu ke aplikasi Unity Anda melalui IPC . Menghubungkan DLL ke Unity direct terlihat lebih mudah. Tapi bisakah itu mendapatkan akses ke API yang dimaksud? - Saya tidak yakin.
Insinyur

Jawaban:

0

Pada SP3 saya, pena berfungsi dengan https://docs.unity3d.com/ScriptReference/Input-mousePosition.html dan mengembalikan Vector3 dengan koordinat x, y dan 0z. Saya menggunakan Unity 5.6 di Linux tetapi jika pena tidak muncul sebagai input sentuh di Windows saya akan menganggap itu memiliki perilaku yang sama.

pengguna3362964
sumber
3
Ini adalah komentar, bukan jawaban untuk pertanyaan yang, "Bagaimana kita dapat mendukung pena di Unity dalam bangunan asli?" .
Insinyur
1
Saya tidak punya cukup perwakilan untuk mengomentari pertanyaan dan ini berhasil. Saya mengujinya lagi dengan SP3 dengan Windows 10 dan Unity 5.2 dan benar melaporkan lokasi pena permukaan seolah-olah itu adalah mouse.
user3362964
Luar biasa! Posisi pena memang dilaporkan, tetapi saya tidak menyadarinya karena keran pena tidak terdaftar sebagai klik mouse. Apakah Anda memiliki wawasan tentang cara mengenali keran pena sebagai klik mouse (atau input apa pun)?
Gregory Avery-Weir
1
Anda mungkin bisa melakukan sesuatu yang aneh dengan mendeteksi ketika pena berhenti bergerak tapi saya belum menemukan apa pun di api input Unity yang mendeteksi keran dengan benar. Saya pikir Anda harus menggunakan salah satu saran @Arcane Engineer dan menggunakan sesuatu eksternal yang meneruskan data ke dalam gim Anda.
user3362964