כשמפתחים משחקי Android למגוון רחב של גורמי צורה – כולל מכשירים מתקפלים, טאבלטים ומסכים גדולים – השחקנים לרוב מחברים בקרים חיצוניים או גיימפדים. במסכי ממשק משתמש שתוכננו במקור לאינטראקציות באמצעות מגע או עכבר, הניווט בתפריטים באמצעות בקר יכול להיות מאתגר.
בדרך כלל, עיצוב מחדש של ארכיטקטורת ממשק המשתמש סביב ניווט רגיל באמצעות לחצני החיצים מספק חוויית משתמש טובה יותר, אבל יכול להיות שלא תמיד אפשר לעשות את זה בפרויקטים קיימים. אפשרות חלופית היא רכיב VirtualMouseInput של Unity Input System. הרכיב הזה מאפשר להזיז סמן וירטואלי של תוכנה במסך באמצעות גיימפד או שלט מחוברים.
מידע על VirtualMouseInput
הרכיב VirtualMouseInput הוא כלי עזר ברמה גבוהה בחבילת Unity Input System שמגשר בין קלט של גיימפד לבין שליטה בסמן במסך, אינטראקציות של מצביע ממשק המשתמש ואירועים מסימולציית מסך מגע. כשהוא פעיל, הוא:
- יוצר מכשיר עכבר וירטואלי: הוא רושם עכבר שמדמה תוכנה במערכת הקלט של Unity לצד מכשירי הצבעה פיזיים.
- מיפוי של הפעולות בשלט המשחק במפות לפעולות של סמן העכבר: אתם יכולים להקצות ג'ויסטיקים אנלוגיים או לחצני כיוון כדי להזיז את הסמן על המסך, ולמפות את הכפתורים בשלט המשחק (כמו הכפתור הדרומי / A) כדי לדמות קליקים ימניים, שמאליים או אמצעיים בעכבר.
- שילוב עם ממשק המשתמש של Unity: באמצעות עבודה חלקה עם
InputSystemUIInputModule, רכיבי ממשק משתמש רגילים כמו כפתורים, מתגים ומחוונים מגיבים לסמן הווירטואלי בדיוק כמו שהם מגיבים לעכבר חומרה או לאינטראקציה עם מסך מגע. - הפעלת סמן חזותי: אפשר להקצות רכיב של ממשק משתמש
Graphic(כמו רכיבImage) שעוקב אחרי המיקום של הסמן הווירטואלי על המסך ומציג אותו באופן אוטומטי.
שילוב של עכבר וירטואלי עם TouchSimulation
אם המשחק שלכם תוכנן במקור באופן בלעדי למסכי מגע והוא מסתמך על סקריפטים או ממשקי API של מגע ישיר, עכבר וירטואלי לא יפעיל אוטומטית את לוגיקת זיהוי המגע הקיימת כי הוא מזוהה כמכשיר עכבר ולא כמכשיר מסך מגע.
כדי לתמוך באינטראקציה עם הסמן באמצעות גיימפד בלי לכתוב מחדש את קוד הטיפול במגע מדור קודם, אפשר להשתמש בתכונה TouchSimulation של מערכת הקלט של Unity לצד VirtualMouseInput:
- איך זה עובד: כשהתכונה מופעלת באמצעות
TouchSimulation.Enable(), מערכת הקלט ממירה באופן אוטומטי לחיצות ותנועות של הסמן מכל מכשיר עכבר פעיל – כולל העכבר שמדומה על ידי התוכנה שנוצרה על ידיVirtualMouseInput– לאירועים מדומי מסך מגע. - זרימת הנתונים שמתקבלת: האינטראקציות שלכם עם המקל והלחצנים של בקר המשחק מפעילות את העכבר הווירטואלי,
TouchSimulationשמתרגם אותן לאירועים של מגע יחיד (Touchscreen). סקריפטים קיימים לזיהוי מגע יכולים לעבד את האירועים האלה בצורה חלקה בלי לשנות את הקוד. - שיקולים:
TouchSimulationמוגבל לאמולציה של מצביע עם מגע יחיד. אם המשחק שלכם מסתמך על תנועות מורכבות של מגע מרובה נקודות, כמו צביטה לשינוי גודל או סיבוב עם שתי אצבעות, אתם צריכים להגדיר קשרי מקשים ייעודיים לפעולות קלט עבור אמצעי הבקרה של הגיימפד.
פרטים טכניים מלאים, מאפיינים ומסמכי שימוש זמינים במאמרי העזרה הרשמיים בנושא סקריפטים של UnityEngine.InputSystem.UI.VirtualMouseInput ושל UnityEngine.InputSystem.EnhancedTouch.TouchSimulation.