امتیاز کاربران

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال
 

در قسمت قبل با نحوه ی ایجاد فایل اسکریپت در یونیتی و زبان های برنامه نویسی مورد استفاده در یونیتی آشنا شدید. در این قسمت با آناتومی یک فایل Script در Unity آشنا خواهید شد و با وظیفه ی توابع Start و Update آشنا خواهید شد.

وقتی روی یک Asset اسکریپت در Unity دابل کلیک می کنید ، در یک ویرایشگر متن باز خواهد شد. به صورت پیش فرض ، یونیتی از MonoDevelop استفاده خواهد کرد ، اما شما می تونید هر ویرایشگر دیگه ای را که دوست دارید از پنل External Tools در preference یونیتی انتخاب کنید.

محتوای اولیه ی فایل چیزی شبیه این است :

usingUnityEngine;
usingSystem.Collections;
public class MainPlayer : MonoBehaviour {
    // Use this for initialization
    void Start () {
    }
    // Update is called once per frame
    void Update () {
    }
}

یک اسکریپت ارتباطش را با توابع داخلی یونیتی به وسیله پیاده سازی یک کلاس از کلاس توکار به نام MonoBehaviour پیاده سازی می کنه. می توانید فکر کنید که یک کلاس نوعی برنامه ی کار ایجاد یک مولفه ی جدید که می تواند به اشیای بازی ضمیمه شود. هر وقت که مولفه اسکریپت رو به یک شی بازی ضمیمه میشه ، یک نمونه جدید از شی می سازد که توسط برنامه کار تعریف شده است. نام کلاس از نامی که موقع ساخت فایل ایجاد شده گرفته می شود. نام کلاس و نام فایل باید یکسان باشن تا مولفه ی اسکریپت قادر باشه به شی بازی ضمیمه شود.

چیزهای اصلی که باید به یاد بسپارید ، دو تابع تعریف شده ی درون کلاس هست. تابع Update محل قرار گیری کدی هست که با بروز رسانی ساختار شی بازی سروکار خواهد داشت. این تابع ممکن است شامل حرکات، اجرای اعمال و پاسخگویی به اطلاعات ورودی ازکاربر باشد. برای فعال کردن تابع Updata جهت انجام وظیفه اش ، اغلب بهتر است که قادر به تنظیم متغیرها باشد ، اولویت ها رو بخواند و با دیگر اشیای بازی قبل از اینکه عملی در بازی رخ دهد ارتباط برقرار کنه. تابع Start توسط یونیتی قبل از شروع روند بازی فراخوانی خواهد شد ( قبل از فراخوانی تابع Update برای اولین بار ) و جای ایده آلی برای انجام هر نوع قالب بندی آغازین هست.

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

اسکریپت Boo که در ادامه آمده همان چیدمان مشابه با اسکریپت C# رو دارد اما اسکریپت یونیتی کمی متفاوت عمل می کنه :

#pragma strict

function Start () {

}

function Update () {

}

در اینجا ، توابع Start و ,Update معنی مشابهی رو میدهند اما کلاس به روشنی معین نشده. اسکریپت به خودی خود تعیین کلاس رو به عهده گرفته است ؛ تلویحا از MonoBehaviour منتج شده و نامش را از نام فایل اسکریپت گرفته است.