PracticU

פיתוח דמות האויב - חלק 1

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח משחקים יוניטי - Unity - שפת #C › פיתוח דמות האויב - חלק 1
מילון מושגים:
רכיב - יחידת בניין עצמאית וניתנת לשימוש חוזר בתוך מערכת או ממשק משתמש, שאחראית על חלק מוגדר מהתפקוד.
סקריפט - קובץ המכיל רצף פקודות שמבוצעות על ידי מפרש, לרוב כדי להפוך משימות לאוטומטיות.
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.

פיתוח דמות האויב - חלק 1
השיעור פותח את בניית האויב. יהיו שני סוגים: אויב שעומד במקום, ואויב שמפטרל מצד לצד על פלטפורמה.
הכנה
1. גרפיקה: מחלקים את גיליון הספרייטים של האויב לעשרה פריימים ויוצרים ממנו קליפ בשם Grunt Run. Pixels Per Unit מוגדר ל-16 כמו בשחקן, ו-Filter Mode ל-Point.
2. רכיבים: מוסיפים Rigidbody 2D ו-Box Collider 2D, ומקטינים את הקוליידר לגודל מתאים. פלטפורמה נמוכה מגדילה את הקוליידר שלה כך שהאויב יעמוד על הדשא.
3. סדר ציור: Order in Layer של האויב מוגדר ל-1, כדי שיופיע מלפנים ולא מאחורי הרקע.
4. Prefab: האויב נשמר כפריפאב, ואפשר לשכפל אותו בשלב בניית הלבל.
הסקריפט
1. מהירות: משתנה float בשם speed קובע את המהירות, ובכל Update הערך מוזז לפי Time.deltaTime, שהוא הזמן שעבר מאז הפריים הקודם.
2. תנועה עקבית: הכפלה ב-Time.deltaTime גורמת לאויב לנוע יחידה אחת בשנייה בלי קשר למספר הפריימים במחשב. התנועה נעשית על ידי שינוי הטרנספורם ולא דרך מנוע הפיזיקה.
אחרי השיעור יש אויב שנע קדימה ואחורה לפי הזמן, ולא לפי מהירות הפריימים של המחשב.
השיעור הבא בקורס: פיתוח דמות האויב - חלק 2

פרקי ההרצאה: פיתוח דמות האויב - חלק 1

  1. 00:00

    תכנון סוגי האויבים וההתנהגות שלהם

  2. 01:07

    הכנת גרפיקת האויב ופילטר Point

  3. 01:48

    חיתוך אנימציית ההליכה לעשרה פריימים

  4. 02:44

    שכבת המשחק וקוליידר לאויב

  5. 04:06

    סדר הציור בתוך השכבה עם Order in Layer

  6. 04:47

    יצירת פריפאב האויב וחיבור הסקריפט

  7. 05:52

    תנועה דרך Transform ולא דרך הפיזיקה

  8. 06:32

    Time.deltaTime לתנועה אחידה בשנייה

תמלול ההרצאה: פיתוח דמות האויב - חלק 1

הטקסט המלא של הדקות הראשונות בהרצאה «פיתוח דמות האויב - חלק 1» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

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

  2. 00:21

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

  3. 00:58

    את הסקייל של ה-X ל-2 והנה יש לי פלטפורמה שתשמש אותי כרגע לאויב. שלב הבא יש לנו פה בתוך הג'וג'ו ג'אנגל פק יש לנו את הספרייט שיטס ובתוך הספרייט שיטס יש לי את האנמי ואני אגרור אותו לתיקייה של הספרייטס את כל התיקייה ועכשיו אני אבחר פה את כל הגרפיקות האלה את כל הטקסטורות אני אשנה את הפיקסל ספר יוניט ל-16 כמו שעשינו עם הפלייר ואת הפילטר מוד אני משנה לפוינט אני לוחץ על הפליי עכשיו אנחנו נתחיל מהאויב

  4. 01:38

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

  5. 02:05

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

  6. 02:23

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

  7. 02:59

    את השם לאנמי ובשביל שנראה אותו אנחנו נצטרך לשים אותו בסורטינג לייר של גיים והנה הוא והנה האנימציה שלו אוקיי שלב הבא זה להוסיף לו ריג'יט באדי 2D ובוקס קוליידר גם 2D אני רואה שהקוליידר שלו קצת גדול מדי אז אני אשנה לו את הגודל של הקוליידר לאחד וזהו אז עכשיו אם אני לוחץ על פליי הוא גם ייפול לי לפלטפורמה

  8. 03:39

    רק שאני רוצה שהוא יופיע יותר נמוך אני רוצה שהוא יופיע בערך באמצע של הדשא בשביל זה אני צריך לשנות את הקוליידר של הגראונד אז בסייז של ה-y של הקוליידר של הפלטפורמה אני אשנה נניח ל-2 וזה קצת פחות מדי אז 1.8 וזה נראה לי די מתאים אם אני לוחץ עכשיו על פליי אז הוא מופיע במקום הנכון אבל לא בסדר הנכון מה שאני הולך לעשות עכשיו אני לא הולך לשנות לו את הסורטינג לייר אבל יש לנו פה גם כאן גם את אורדר אין לייר באיזה סדר לצייר בעצם

  9. 04:07

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

  10. 04:57

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

  11. 05:22

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

  12. 05:41

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

  13. 06:04

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

  14. 06:15

    אוקיי אז קודם כל אני יוצר משתנה של מהירות שהוא יהיה float x speed ונניח שהוא יהיה 3. עכשיו אמרנו שהפונקציה update נקראת call frame למזלנו יש בunity class שנקרא time ויש לו משתנה שמכיל את הזמן שעבר מאז הפריים הקודם אז אותו משתנה נקרא time.delta time וdelta time the time in seconds it took to complete the last frame אוקיי אז יש לי פה את הזמן מאז הפריים הקודם וזה אומר שאם אני

  15. 06:58

    מזיז אותו כל פעם ב-time.delta time בכל update הוא יזוז לי יחידה בשנייה אני מקווה שזה ברור

לקורס המלא: קורס פיתוח משחקים ביוניטי

ההרצאה הקודמת: פיתוח דמות השחקן - חלק 5

ההרצאה הבאה: פיתוח דמות האויב - חלק 2

הרצאות קשורות מקורסים אחרים

  • שלבי פיתוח של התוכנה
  • מחזור חיי פיתוח
  • מחזור חיים של פיתוח מוצר תוכנה
  • הרצת הטסטים האוטומטיים - פיתוח אנדרואיד

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת C# .NET - קורס תכנות למתחילים - דוט-נט / סי-שארפ - חומר לימוד של מדעי המחשב