איך להפוך למתכנת טוב יותר ב-Unity

עם עלייתם של AI ו-Machine Learning, קל להניח שלא יהיה צורך במתכנתים בעתיד. עם זאת, ייתכן שיחלפו ממש זמן רב עד שהבינה המלאכותית תוכל לפרש משימות מורכבות יותר, כגון הפשטה, אופטימיזציה, חיבור הדדי וכו'.

לכן, אף פעם לא מאוחר מדי לחדד את הידע שלך בתכנות ב-Unity, כדי להפוך את עצמך לא רק למתכנת יעיל יותר אלא גם, בבוא הזמן, מסוגל לפקח על הקוד שנכתב על ידי אחרים ולהנחות אותם. בכיוון הנכון.

1. אופטימיזציה מוקדמת היא לא תמיד שורש כל הרע

זה נושא נפוץ להכפיש אופטימיזציה מוקדמת כצעד מיותר בעת יצירת אב טיפוס של משהו, עם זאת, זה לא אמור להיות תמיד המקרה, במיוחד במהלך הוספת דברים קטנים, שאתה יודע בוודאות שיש להם השפעה רבה על הביצועים, וכאשר הגיע הזמן לעשות את האופטימיזציה האמיתית, הזמן כבר נחסך על ידי טיפול בדברים הקטנים יותר. בוא נשתמש ב-gameObject.name כדוגמה:

using UnityEngine;

public class ObjectNameScript : MonoBehaviour
{
    public string objectName;

    void Update()
    {
        objectName = gameObject.name;
		Debug.Log(objectName);
    }
}

אמנם השימוש ב-gameObject.name עשוי להיראות לא מזיק, כפי שגילינו בפוסט "Unity בצע אופטימיזציה של המשחק באמצעות Profiler", קבלת שם של אובייקט מקצה לא מעט זיכרון, מה שמכפיל את הבעיה על ידי קריאתו כל מסגרת. אז מיד, נוכל להעביר את ההקצאה הזו לפונקציה Start (אלא אם כן, שם האובייקט משתנה לעתים קרובות, במקרה כזה, זה יהיה יעיל יותר לדלג על השימוש לגמרי בשם ולהשתמש במשתנה במקום זאת).

using UnityEngine;

public class ObjectNameScript : MonoBehaviour
{
    public string objectName;

    void Start()
    {
        objectName = gameObject.name;
    }

    void Update()
    {
        Debug.Log(objectName);
    }
}

2. כתוב קוד קצר יותר

כתיבת קוד קצר יותר תמיד חוסכת זמן, מה שהופך אותו לקריאה יותר וקל יותר לתחזוקה בעתיד.

ישנן דרכים רבות לכתוב קוד קצר יותר, ובמקרה של Unity, קוד C#. לדוגמה על ידי פישוט הצהרת if/else באמצעות הסמל '?':

int numA = 10;
int numB = 5;
int result;
if (numA > numB) {
    result = numA;
} else {
    result = numB;
}
Debug.Log(result);

ניתן לקצר את אותו קוד ל:

int numA = 10;
int numB = 5;
int result = (numA > numB) ? numA : numB;
Debug.Log(result);

דרך נוספת לקצר את הקוד היא על ידי הכנסת הקוד החוזר לפונקציה משלו ולאחר מכן שימוש בפונקציה זו במקום.

3. קודם קוד, שאל שאלות אחר כך

אמנם תכנון הוא חלק מהותי בכל פרויקט, אך אם מדובר באב טיפוס, או אם הרעיון עדיין לא חצוב באבן, חשוב להתחיל בקידוד בהקדם האפשרי, שכן לא משנה כמות התכנון, ברגע שתגיעו אל בעבודה, תמיד תגלה משהו שניתן לעשות טוב יותר/יעיל יותר, או שרעיונות מסוימים אינם טובים בתרגול כמו אחרים, ולהיפך.

בסך הכל, מעט מאוד דברים ישפרו אותך בתכנות כמו להגיע לעבודה ולהתחיל לכתוב את הקוד.

4. בדיקת הפעלה, לפני ביצוע שינויים כלשהם

כאשר יש לך הדגמה ניתנת להפעלה, חיוני להתחיל לבדוק אותה בהקדם האפשרי כדי לאתר היכן ניתן לשפר דברים, מכיוון שלעתים קרובות, זה לא יכול להיות ברור רק על ידי הסתכלות על הקוד.

ברגע שתשלוט באומנות בדיקת המשחק ואיסוף משוב, תהפוך למתכנת יעיל יותר, על ידי כך שאתה יודע בדיוק היכן לחפש כדי לשפר את הקוד.

Unity כמובן מספק כלים שימושיים רבים לאורך הדרך, כגון Console (לזיהוי אזהרות ושגיאות), Profiler לביצועי ניפוי באגים, ושאר הממשק (סצנה, היררכיה, מפקח וכו' לניטור של זרימת המשחק/הפרויקט).

5. אופטימיזציה היא תהליך הדרגתי

כולנו יכולים להסכים שביצועי המשחק יכולים לעשות או לשבור אותו והם אחד מעמודי התווך של השקה מוצלחת. אבל ניתן להעריך את ביצועי המשחק רק על ידי ביצוע מבחני המשחק בתרחישים ותנאים שונים, על מנת לדמות את המשחק מנקודת מבטם של שחקנים רגילים.

דנו בשיטות רבות כיצד לנפות באגים, לייעל ולמצוא צווארי בקבוק בקוד המשחק שלך.

כדי ללמוד עוד על איך לבצע אופטימיזציה של משחק שולחן העבודה או הנייד שלך, תוכל לבדוק את הפוסטים שלהלן:

  1. Unity בצע אופטימיזציה של המשחק שלך באמצעות Profiler
  2. שיפור הביצועים של משחק נייד ב Unity 3D
  3. Unity עצות אופטימיזציה

אם יש לכם טיפים משלכם כיצד להפוך למתכנתים טובים יותר ב-Unity, אתם מוזמנים לפרסם אותם בתגובות.