آموزش ساخت بازی بقا و تیراندازی
آموزش ساخت بازی بقا و تیراندازی
اسفند ۹, ۱۳۹۶
دانلود مدل سه بعدی بوگاتی کایرون-bugatti chiron
اردیبهشت ۱۸, ۱۳۹۷

دسترسی به components ها در اسکریپت یونیتی

منوهای یونیتی

دسترسی به components ها در اسکریپت یونیتی

 

در محیط یونیتی با استفاده از Inspector تغییراتی بروی آبجکت ها می توانید بدهید. مثلا تغییر components هایی مثل تغییر جهت , زاویه , تغییر رنگ , اضافه کردن فیزیک به آبجکت و همینطور اضافه کردن اسکریپت که با اضافه کردن اسکریپت می توانید در هرجا از بازی components های موجود در یک آبجکت را با کد تغییر دهید. مثلا می خواین یک سکه باشه برداشته بشه و میگیم به محض برخورد با آبجکت تیک فعال بودن آبجکت را از قسمت components ها بردارد.

دسترسی به Components

ساده ترین و رایج ترین مورد این است که اسکریپت اختصاص داده شده به گیم آبجکت میتواند تغییراتی به راحتی در همان آبجکت ایجاد کند. یک کامپوننت در واقع یک نمونه از یک کلاس است.

 

C#

void Start ()

{

Rigidbody rb = GetComponent<Rigidbody>();

}

 

JS

function Start ()

{

var rb = GetComponent.<Rigidbody>();

}

هنگامی که شما اشاره ای به نمونه کامپوننت دارید، می توانید مقادیر خواص آن را همانطور که در Inspector هست را تنظیم کنید:

void Start () {

Rigidbody rb = GetComponent<Rigidbody>();

// Change the mass of the object’s Rigidbody.

rb.mass = 10f;

}

برخی از ویژگی های قابل تغییر آبجکت در کد در Inspector موجود نیست، یک نمونه از این توابع را در زیر مشاهده میکنید:

 

void Start () {

void Start () {

Rigidbody rb = GetComponent<Rigidbody>();

// Add a force to the Rigidbody.

rb.AddForce(Vector3.up * 10f);

}

 

شما می توانید بیش از یک اسکریپت به یک آبجکت اختصاص دهید و هیچ مشکلی ندارد.

دسترسی به دیگر آبجکت ها

اول از همه باید آبجکت در اسکریپت معرفی کنید

public class Enemy : MonoBehaviour {

public GameObject player;

// Other variables and functions…

}

بعد از این مرحله در صفحه کامپوننت ها زیر کامپوننت اسکریپت اضافه شده یک قسمت اضافه میشه که میتوانید آبجکتی که میخواهید تغییرات روش انجام بشه رو به این متغییر تعریف شده اختصاص دهید.

 

حالا تغییر مکان آبجکتی که به آبجکت اصلی اختصاص دادیم . باید این کد را در ادامه وارد کنید.

public class Enemy : MonoBehaviour {

public GameObject player;

void Start() {

// Start the enemy ten units behind the playercharacter.

transform.position = player.transform.position – Vector3.forward * 10f;

}

}

همانطور که گفته شد خط دوم آبجکت مورد نظر را در کد فراخوانی میکنیم و تغییراتی در تابع Start روش اعمال میکنیم.

 

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *