שימוש בלחצנים בממשק המשתמש של Unity
סביבת אימות
- חלונות
-
- חלונות 11
- עורך Unity
-
- 2020.3.25F1
תנאים מוקדמים לטיפ זה
ההגדרות הבאות נעשו מראש כתנאי מוקדם להסבר על טיפים אלה.
בהתחלה
כפתור יכול לשמש כאובייקט שהמשתמש לוחץ עליו בעצמו, או שהוא יכול לשמש כדי לבחור, כגון "כן" או "לא". אם ברצונך לפרט מעט יותר, באפשרותך להשתמש בלחצן כאובייקט לבחירת פריט רשימה, כגון תפריט.
בנוסף לכך, זה יכול לשמש גם למטרות באגים ובעת לחיצה על כפתור כדי לשנות את המדינה באופן שרירותי.
לחץ על הלחצן כדי לשנות את הטקסט
אם פשוט תלחץ על הכפתור, תעשה קצת עיבוד. הפעם, בכל פעם שתלחץ על הכפתור, מספר הטקסט יגדל ב -1.
מיקום וקביעת תצורה של ממשק משתמש
הוסף טקסט ולחצנים מההירארכיה לתצוגה.
אתה יכול למקם אותו בכל מקום כל עוד אתה שם אותו במקום שבו אתה יכול לראות אותו. מכיוון שקשה לראות במצב הראשוני, נקבעות הגדרות כגון "צבע טקסט לבן", "שינוי גודל", "הגדל את גודל הגופן" וכו '. תוכן הטקסט ישתנה באופן אוטומטי מאוחר יותר, כך שתוכל להשאיר אותו כ"טקסט חדש".
הגדרת התו של הלחצן מחולקת ל "כפתור" ו "טקסט", אז בחר טקסט ולהגדיר אותו.
הוספת סקריפטים
בחר את התיקיה סצינות מהפרוייקט, לחץ באמצעות לחצן העכבר הימני על שטח ריק ובחר C# Script כדי להוסיף אותו. במקור, עדיף ליצור את הסקריפט בתיקייה נפרדת, אבל אני אשמיט אותו לצורך בדיקת הפעולה.
שם הקובץ צריך להיות קל להבנה. הזן תווים אלפאנומריים רבים ככל האפשר.
ButtonClick
במקרה זה, הוא מוגדר ל- .
לאחר יצירתו, לחץ פעמיים על סקריפט C# כדי לפתוח את עורך הסקריפט. אם עורך הסקריפטים שלך הוא Visual Studio, אתה אמור לראות משהו כזה:
Start
השיטה אינה נחוצה הפעם, לכן מחק אותה, כתוב אותה מחדש ושמור אותה כדלקמן., Update
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; // 追加
public class ButtonClick : MonoBehaviour
{
<summary>カウントアップするテキストオブジェクト。</summary>
[SerializeField] Text CountText;
public void OnClick()
{
}
}
התחביר של C# אינו הנושא העיקרי של טיפ זה, ולכן לא אסביר אותו. אנא למדו בעצמכם. רק תיאורים ספציפיים לאחדות נדונים.
MonoBehaviour
שדות שנכתבו במחלקות שיורשות מ יוכלו להיות מוגדרים בעורך האחדות.
CountText
כאן, אנו מגדירים אובייקט טקסט שנקרא
על מנת שהוא יוצג, יש לפרסם אותו public
עם .
SerializeField
עם זאת, אם תוסיף את התכונה, public
תוכל להציג אותה בעורך עם נגישות שאינה .
זהו תיאור טוב יותר אם אינך רוצה לגשת אליו ממחלקות אחרות ככל האפשר מלבד לצורך הגדרתו בעורך.
OnClick
שיטות מסופקות כדי לתאר מה לעשות בעת לחיצה על לחצן.
public
יש להגדיר זאת ב- .
צירוף מעורך Unity
חזור אל Unity Editor ובחר מתוך ההירארכיה EventSystem
.
EventSystem
המפקח יופיע, לכן שחרר את סקריפט C# שיצרת זה עתה באזור "הוסף רכיב" למטה.
התסריט מוכן כעת לעבודה.
למעשה, סקריפט זה יכול להיות מחובר לכל אובייקט, וזה Button
צריך להיות מחובר לאובייקט.
בטיפ זה, נוסיף כדי להקל על ההבנה EventSystem
באופן אחיד .
Button
כמובן, אין בעיה לצרף אותו ל- . עם זאת, עדיף לא לצרף אותו לאובייקט לא קשור לחלוטין, כפי שהוא יגרום בלבול.
אם אתה מסתכל על הסקריפט שהוספת, אתה יכול לראות שהפריט "ספירת טקסט" מוצג.
לאחר שתפרסם שדה בדרך זו, תוכל להגדיר את הערך מעורך האחדות.
אנו רוצים לגשת לאובייקט הטקסט כאשר אנו לוחצים על הכפתור, לכן גרור מההיררכיה Text
ושחרר Count Text
אותו על .
פעולה זו תאפשר לך לגשת אליו מהסקריפט שלך בכל עת.
לאחר מכן, בחר מתוך ההירארכיה Button
ולחץ על + תחת בעת לחיצה במפקח Button
.
לאחר מכן יתווסף פריט אחד.
בפריט הימני התחתון, שמטתי סקריפט המצורף מההיררכיה EventSystem
.
מכיוון שאנחנו צריכים לשים את האובייקט שאליו התסריט מצורף כאן,
אם אתה מצרף קובץ Script ללחצן, עליך לכלול לחצן.
אם תלחץ על "אין פונקציה", הסקריפט המצורף יוצג, לכן ButtonClick
בחר .
בחר את השיטה שיצרת OnClick
בו.
עכשיו כאשר אתה לוחץ על הכפתור, השיטה OnClick
נקראת.
יומן פלט בלחיצת כפתור
אני אוציא את היומן כדי לאשר שזה עובד. אתה יכול לבדוק שזה עובד רק על ידי כתיבת שורה אחת, וזה יהיה מאוד שימושי עבור באגים בעתיד, אז עדיף לזכור את זה.
ButtonClick
פתח את קובץ ה- Script והוסף OnClick
את הטקסט הבא ל- .
public void OnClick()
{
// コンソール ログを出力
Debug.Log("ボタンが押されました!");
}
לאחר שנכנסת ושמרת, הפעל את המשחק ולחץ על הכפתור.
בכל פעם שאתה לוחץ עליו, מופיעה הודעה בכרטיסיית הקונסולה. עכשיו אתם יכולים לראות שזה עובד.
שינוי טקסט בלחיצת לחצן
עכשיו שאתה יכול להזיז את הכפתורים, המטרה של טיפ זה הושגה. כעת, לאחר שמיקמתי את אובייקט הטקסט, ברצוני לשנות את הטקסט בכל פעם שאני לוחץ על הלחצן.
כתוב מחדש את התסריט באופן הבא.
// 省略
public class ButtonClick : MonoBehaviour
{
<summary>カウントアップするテキストオブジェクト。</summary>
[SerializeField] Text CountText;
<summary>クリックカウント。</summary>
private int _counter = 0;
public void OnClick()
{
// コンソール ログを出力
Debug.Log("ボタンが押されました!");
// カウントを増やす
_counter++;
// カウントした数を表示する
CountText.text = _counter.ToString();
}
}
התוכן הוא פשוט להגדיל את הספירה ב- 1 בכל פעם שאתה לוחץ ומגדיר את המספר לאובייקט הטקסט.
הפעל את המשחק וודא שהמספר גדל עם כל לחיצה.