יצירת אובייקט המבוסס על Prefab מסקריפט

עודכן דף :
תאריך יצירת דף :

סביבת אימות

חלונות
  • חלונות 11
עורך Unity
  • 2021.3.3F1
חבילת מערכת קלט
  • 1.3.0

תנאים מוקדמים לטיפ זה

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

יצירת אובייקט המבוסס על Prefab בסקריפט

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

יצירת דוגמאות

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

צור טרמינל. זהו אותו הליך כמו הטיפים הקודמים.

צור קובץ Script כדי להוסיף את האובייקט בפעם הבאה שתלחץ על הלחצן. ButtonEvent השאר את השם כ- .

using UnityEngine;

public class ButtonEvent : MonoBehaviour
{
  [SerializeField] private GameObject SpritePrefab;

  public void OnClick()
  {
    // Instantiate にプレハブを渡すとそれをもとに新しいオブジェクトを生成する
    var obj = Instantiate(SpritePrefab);

    // 配置位置はランダムに
    obj.transform.localPosition = new Vector3(Random.value * 6 - 3, Random.value * 6 - 3);
  }
}

GameObject הגדר את השדה כך שתוכל להגדיר מראש על איזה קדם יהיה ליצור בהתבסס על זה.

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

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

צרף את הסקריפט ל- EventSystem.

GameObject מוגדר אז זרוק את הטרומית כאן.

כאשר לוחצים על הלחצן, השיטה OnClick נקראת.

ביצוע לדוגמה

לאחר יצירתו, הפעל את המשחק ולחץ על הכפתור. כל לחיצה אמורה ליצור אובייקט.

כמובן, מכיוון שהוא נוצר על בסיס ה- prefab, אם הערך של ה- prefab משתנה, האובייקט שנוצר ייווצר בהתאם לערך זה.