لرنینگ تی وی

طعم شیرین یادگیری

فراخوانی فایل جاوا اسکریپت در سی شارپ در یونیتی


تاریخ انتشار

تعداد نظرات

تعداد بازدید

زمان تقریبی مطالعه
۰۴/بهمن/۱۳۹۲
۱۸۵۲ روز پیش
۴ دیدگاه ۱۵۳۹ ۲ دقیقه

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

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

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

برای مبتدی ها:

در واقع برای ایجاد برخی از وقایع و کارها ما از یکسری کدها استفاده می کنیم. این کدها به سه زبان برنامه نویسی ۱- سی شارپ ۲- جاوا اسکریپت ۳- بو اسکریپت (ازخانواده ی زبان برنامه نویسی پایتون) نوشته می شوند.

[سید]: در بین این سه زبان زبان برنامه نویسی سی شارپ از لحاظ راحتی و کارایی بهترین زبان برنامه نویسی هست ولی زبان برنامه نویسی جاوا اسکریپت زبان پیشفرض این موتور بازی سازی می باشد و معمولا آموزش هایی که در سراسر اینترنت وجود دارند از زبان جاوا اسکریپت استفاده کرده اند.

نکته : اساس آموزش های لرنینگ تی وی نیز بر زبان برنامه نویسی سی شارپ هست.

همانطور که می دونید توی یونیتی میشه متغیر یک اسکریپت رو در اسکریپت دیگه فراخوانی کرد.

البته تنها مشکلی که هست اینه که توی یونیتی فقط میشه این کار رو بین اسکریپت هایی که به یک زبان نوشته شده اند انجام داد.

مثلا متغیر n رو در یک اسکریپت سی شارپ تعریف کنید و در اسکریپ سی شارپ دیگه این متغیر رو تغییر بدیم.

در حقیقت ما برای این که بخواهیم مثلا متغیر یک اسکریپت جاوا اسکریپت رو در یک اسکریپت سی شارپ تغییر بدیم دچار مشکل خواهیم شد.

برای حل این مشکل نیز روشی هست که در ادامه مطلب می تونید این روش رو ببینید.

پس برای مشاهده ی آموزش به ادامه ی مطلب مراجعه نمایید.

برای انجام این عمل کاری که باید در وهله ی اول انجام بدید اینه که فایل جاوا اسکریپتتون رو به پوشه ای به نام Standard Assets منتقل کنید.

اگه این پوشه وجود نداره این پوشه رو درست کنید.

پس تا اینجای کار باید پروژتون به صورت زیر در بیاد:

فراخوانی فایل جاوا اسکریپت در سی شارپ

نکته : دقت کنید که فایل سی شارپ بیرون این پوشه باشه و توی این پوشه فقط فایل جاوا اسکریپتتون باشه.

خوب بریم سراغ کدها:

فرض کنید یک مکعب داریم که اگه دکمه ی k رو زدیم ۵ درجه ۵ درجه حول محور y می چرخه و وقتی دکمه ی m رو زدیم ۱ درجه ۱ درجه برعکس حول محور y می چرخه.

خوب ما توی کد جاوا اسکریپت عمل چرخیدن رو شبیه سازی می کنیم و در سی شارپ این که کدوم دکمه فشار داده شده یعنی دکمه ی k فشار داده شده یا m

کد جاوا اسکریپت:

 

در کد بالا یک تابع با نام D تعریف کردیم که این تابع یک متغیر از نوع float در یافت می کنه و اسمش b هست.

درون تابع نیز گفتیم شی مورد نظر حول محور y به اندازه ی b بچرخه.

خوب بریم سراغ کد سی شارپمون .

توی کد سی شارپ می خواهیم به متغیر b این جاوا اسکریپت دسترسی پیدا کنیم و اونو تغییر بدیم:

کد سی شارپ :

 

خوب بپردازیم به این اسکریپت سی شارپمون:

مهمترین قسمتی که در این اسکریپت به چشم می خوره تعریف متغیر javascript از نوع JsTest می باشد.

اگه خیلی تیز باشید حتما این نکته رو فهمیدید.

ما همیشه متغیر ها رو از نوع float ، Bool،Int و …. تعریف می کردیم ولی حالا متغیر رو از نوع JsTest تعریف کرده ایم.

این JsTest اصلا از کجا اومده؟

در واقع این JsTest اسم همون اسکریپت جاوا اسکریپتمون هست.می تونید به تصویر اولی که براتون قرار دادم نگاه کنید می بینید که اسم اسکریپت جاوا اسکریپتمون JsTest هست.

خوب این مهمترین قسمت بود که انشا الله فهمیده باشید.

پس برای انجام این روش باید یک متغیر از نوع “نام اسکریپت جاوا اسکریپت” ایجاد کنید.

در قسمت Update هم گفته ایم که اگر مثلا دکمه ی k زده شده متغیر javascript مقدار ۵ رو دریافت کنه و در اسکریپت جاوا اسکریپتی که داشتیم منتقلش کنه و در نتیجه میزان چرخش ۵ درجه خواهد بود.

و اگر هم دکمه ی m رو زدیم میزان چرخش برابر -۱ خواهد بود.

بعد از انجام این کارها هر دو اسکریپت جاوا اسکریپت و سی شارپ رو به مثلا مکعبی که در محیط ساخته اید اعمال کنید.

سپس در بخش inspector مشاهده می کنید که دو تا اسکریپت به شی اعمال شده اند. نظیر شکل زیر:

فراخوانی فایل جاوا اسکریپت در سی شارپ

خوب در تصویر بالا نکته ای که مهمتر از همه هست قسمت سبز رنگ تصویر هست.

در این قسمت باید شی ای که اسکریپت جاوا اسکریپت بهش اعمال شده قرار داده بشه.

نکته:

اگه فایل JsTest رو داخل پوشه ی Standard Assets قرار نداده باشید با خطا مواجه خواهید شد. پس به این نکته توجه کنید!!!

دوباره این چند نکته رو میگم چون معمولا کاربران حال و حوصله ی خوندن کامل متن رو ندارند:

۱-فایل جاوا اسکریپتی که ایجاد می کنید حتما باید داخل پوشه ی Standard Assets باشه.

۲- فایل سی شارپی که ایجاد می کنید حتما باید بیرون پوشه ی Standard Assets باشه.

۳- اگه پوشه ی Standard Assets وجود نداشت اصلا نگران نشید اونو خودتون ایجاد کنید.

۴- متغیر javascript  ای که تعریف کردیم حتما باید از نوع “نام اسکریپت جاوا اسکریپت باشه”

۵- وقتی که کد سی شارپ رو به شی مورد نظرتون اعمال می کنید در قسمت Inspector در قسمت متغیر javascript باید شی ای که اسکریپت جاوا اسکریپت بهش اعمال شده قرار داده بشه.

این آموزشی بود برای دوستانی که میگن نمیشه متغیری که توی اسکریپت جاوا اسکریپت نوشته شده رو توسط سی شارپ تغییر داد.

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

فایل پروژه

تا آموزشی دیگر خدا نگهدار

با تشکر

سید

For foreigners

.Hi to all user and friends

.I am seyyed hamed mahmoodzadeh

In this tutorials we are call one variable from javascript to c# script in unity3d .engine

:We need to many notes

a) Your Java Script must be into Standard Assets Folder. If this folder is not , create a folder with “Standard Assets” Name

b) Yor C# Script Must not be Standard Assets Folder

 c) In C# Script Define a Variable with “Java Script Name” Type Such As Under :Lines

فراخوانی فایل جاوا اسکریپت در سی شارپ

JavaScript Created with JsTest Name:

In this script we are define D function with b Variable.b is angle of rotate of game object.

:C# Script Create with Any Name

In this script we define javascript Variable with JsTest Type. In Update Function We Talk if K Key is Pressed b is 5 And if m Key is Pressed b is -1.

With This Work We Change Variable Of JsTest Script From C# Script.

Project File Is In Forum. For Download Project File Use below Link:

Project File

I Hopeful that you used this Tutorial right.

By Thanks

LearningTV.ir

۴ نظر برای "فراخوانی فایل جاوا اسکریپت در سی شارپ در یونیتی"


  1. نوشته شده توسط  

    دقیقا دیروز این سوال واسم پیش اومد. ممنون

    پاسخ

    پاسخ
  2. نوشته شده توسط  

    سلام خیلی ممنونم دیروز تومسابقات هرکار کردم نتونسم مرسی اقا حامد ایشالا هرجی از خدا میخوای بهت بده همه یه اموزشات حرف ندارن

    پاسخ

    پاسخ
    • نوشته شده توسط  

      سلام
      توی کدوم مسابقات ؟
      انشا الله

      با تشکر
      سید

      پاسخ پاسخ

  3. نوشته شده توسط  

    مسابقات بازی سازی جهانی(Global Student Game Developer Competition)..ای کاش میتونسم کنارشماتجربه هامو بالا ببرم من سومین بار شرکت کردم تواین مسابقات دوبارهم تومسابقات کاشان..بازم تشکر

    پاسخ

    پاسخ

ارسال دیدگاه

نام (*)
پست الکترونیکی (*)
وبسایت