فراخوانی اسکریپت خارجی دسترسی به متغیرهای فایل بیرونی جاوااسکریپت از داخل فایل سیشارپ در یونیتی
شنبه, ۳۰ خرداد ۱۳۹۴، ۰۴:۲۸ ب.ظ
Access javascript variables using csharp script in unity
---
یک پروژه جدید ایجاد کنید.
پوشه ای به نام Script و داخلش یک اسکریپت سیشارپ به نام CSharp1.Cs ایجاد کنید.
پوشه ای به نام 'Standard Assets' (حتما دقیقا همین باشه ویلا جواب نمی ده) و داخلش یک اسکریپت js به نام JS1.js ایجاد کنید.
--کد اسکریپت JS1.js :
//JS1.js //Don't forget to place the 'JS1.js' file inside the 'Standard Assets' folder // Unity3D: JavaScript->C# or C#->JavaScript access //This variable will be accessed through C# public var message : String = "Text in js file.";
کد اسکریپت CSharp1.Cs:
// Unity3D: JavaScript->C# or C#->JavaScript access //CSharp1.Cs using UnityEngine; using System.Collections; public class CSharp1 : MonoBehaviour { private JS1 jsScript; void Awake() { jsScript = this.GetComponent<JS1>();//Don't forget to place the 'JS1.js' file inside the 'Standard Assets' folder } //render text and other GUI elements to the screen void OnGUI() { //age ghermez kard mohem nist khata nmide GUI.Label(new Rect(10,10,300,20),jsScript.message); } }
یک گیم ابجکت ایجاد کنید و هر دو اسکریپت رو با ماوس بگیرید بندازید روش(توی Hierarchy روی گیم ابجکت دلخواه بندازید)
بازی رو اجرا کنید. می بینید که فایل سیشارپ،متغیر message از داخل فایل جاوااسکریپت رو می خونه و مقدارش رو توسط تابع GUI روی یک label صفحه نشون میده.
نکته مهم :
حتما یادتون نره فایل JS1.js رو داخل پوشه ای به نام 'Standard Assets' بذارید.
حتما فایل سیشارپ CSharp1.Cs رو داخل پوشه ی دیگه ای غیر از 'Standard Assets' بذارید.
منبع :
http://www.41post.com/1935/programming/unity3d-js-cs-or-cs-js-access
اینم واسه سیشارپ:
http://stackoverflow.com/questions/25930919/accessing-a-variable-from-another-script-c-sharp