Unity 3D Prototype (Прототип)

2075 / Unity / 2D / 3D / Шаблони / Прототип (Prototype)

 

Дозволяє робити копії об'єктів з специфічними параметрами

 


 

Версія для C#-скриптів

 


Unity

Instantiate(obj) - функція, що дублює ігровий об'єкт



Варіант 2


 

Версія для Unity-компонент

Робить копію об'єкту, але з нашими параметрами:

  • позиція
  • кути до осей
  • масштаб
  • чи видимий об'єкт

 

Як робити копію

public class Prototype : MonoBehaviour
{
  public T Instantiate<T>() where T : Component
  {
    Prototype instance;
    instance = Instantiate(this, transform.position, transform.localRotation);
    instance.transform.localScale = transform.localScale;
    instance.gameObject.SetActive(true);
    return instance.GetComponent<T>();
  }
}

 
Скрипт, що робить копію 
 
public class Spawner : MonoBehaviour
{
  public Prototype prototype;

  [ContextMenu("CopyMaker")] // Дає можливість заустити з Unity 
                           //клацнувши правою кнопкою миши по скрипту
  public void CopyMaker()
  {
    var newInst = prototype.Instantiate<Prototype>();
    newInst.name = "Copy";
  }
}