HD Games

HD Games وبلاگی پر از آموزش و پلاگین و اسکریپت و... های اماده برای نرم افزار های مختلف

HD Games

HD Games وبلاگی پر از آموزش و پلاگین و اسکریپت و... های اماده برای نرم افزار های مختلف

HD Games

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

کانال تلگرامی ما : @Unity_Technologies

(برای حمایت از ما لطفا وبلاگ ما را دنبال کنید)

دنبال کنندگان ۶ نفر
این وبلاگ را دنبال کنید
donate
telegram channel instagram

طبقه بندی موضوعی

نویسندگان

#آموزش دسترسی به متغیر (عمومی و خصوصی) #اسکریپت های دیگر :
سلام بچه ها شما میتونید با یکی از روش هایی که بیان شده متغیر عمومی و خصوصی از اسکریپت های دیگه بگیرید یا مقدار دهی کنید و... .


روش اول (دسترسی به متغیر عمومی از راه متغیر) :
فرض کنید یک اسکریپت دیگر با نام Controller دارید و میخواهید از اسکریپت دیگر به متغیر Speed آن که با سطح دسترسی عمومی است دسترسی پیدا کنید، برای اینکار میایم و یک متغیر با سطح دسترسی عمومی و از نوع اسکریپت Controller و با نام دلخواه (مثال: controller) تعریف می کنیم :
Controller controller;
حالا در تابع مورد نظر میایم و با استفاده از متغیری که ساختیم به متغیر های اسکریپت Controller دسترسی پیدا میکنیم (برای اینکه به اسکریپت های دیگر دسترسی پیدا کنید نوع متغیر یا باید به اسم اسکریپت مورد نظر تغییر دهید) :
controller.Speed = 5;
اومدیم و به متغیر Speed اسکریپت Controller دسترسی پیدا کردیم و مقدار 5 رو به اون دادیم...
حالا اسکریپت رو ذخیره کنید و به ابجکت دلخواهی نسبت بدید و حالا به یک کامپوننت تبدیل میشود و شما میتوانید متغیر های عمومی اسکریپتتان را ببینید که ما فقط به متغیر controllerکار داریم اسکریپت Controller رو به ابجکت دیگری مثلا کاراکتر اصلی بازی نسبت میدیم و ابجکت کاراکتر را در کادر متغیر controller درگ میکنیم تا اسکریپت Controller رو بگیره، حالا میتونید بازی رو اجرا کنید و لذت ببرید..


روش دوم (دسترسی به متغیر عمومی از راه کتابخانه) :
خب دوستان فرض کنید دوباره به همون اسکریپت Controller و متغیر Speed آن میخواهیم از راه کتابخانه دسترسی داشته باشیم برای اینکار باید برای کلاس هایمان یک کتابخانه در نظر بگیریم پس یکی بالاتر از خط تعریف کلاس میایم و کد زیر رو مینویسیم :
public namespace ✴️ {
بجای شکلک ✴️ اسم کتابخانه خود را بنویسید (نوشتن نام کتابخانه اجباری بوده و نیازی نیست نام کتابخانه با کتابخانه های دیگری برابر باشد پس هر اسم دلخواهی میتونید انتخاب کنید) برای مثال (Test)، حالا در اخرین خط اسکریپت میایم و } میزاریم تا با خطایی مواجعه نشیم حالا به اسکریپت دیگر خود رفته و کتابخانه ای که تعریف کردید و فراخوانی کنید :
using Test;
بعد کلمه using اسم کتابخانه رو مینویسید (نکته : کتابخانه های بیرون از کلاس فراخوانی میشوند)، حالا برای دسترسی باید اسم کلاس یا همان اسکریپت را در تابع مورد نظر مینویسیم و حالا به توابع و متغیر های عمومی میتوانیم دسترسی داشته باشیم برای اینکه متغیر Speed اسکریپت Controller را مقدار دهی کنیم از کد زیر استفاده میکنیم :
Controller.Speed = 3;


روش سوم (دسترسی به متغیر خصوصی با استفاده از تابع عمومی) :

خب دوستان ابتدا توی اسکریپت Controller یا هر اسکریپتی که میخواید به متغیر خصوصیش دسترسی داشته باشید باید تابع تغییر مقدار متغیر خصوصی رو بنویسید :
public void SetValue (int value) {
   v
al = value;
}
تابعی با سطح دسترسی عمومی و با نام SetValue تعریف کردیم که یک ورودی عدد صحیح به نام value براش در نظر گرفتیم و بعد متغیری با سطح دسترسی خصوصی به نام val در بالای توابع داخل کلاس با نوع int عدد صحیح تعریف کردیم :
private int val;
و در تابع عمومیمون گفتیم که مقدار متغیر val رو با متغیر عدد صحیح ورودیش برابر کنه حالا در اسکریپت دیگر از روش اول استفاده میکنیم و متغیر اسکریپت Controller یا هر اسکریپتی که میخوایم بهش دسترسی داشته باشیم رو تعریف میکنیم و حتی میتونید از روش دوم از راه کتابخانه هم این کار رو انجام بدید اما روش اول بهتر هست و ما از روش اول استفاده میکنیم حالا اسم متغیر اسکریپتمون رو مثلا controller میزاریم و توی تابع مورد نظر کد زیر رو مینویسیم :
controller.SetValue (6);
به تابع SetValue که نوشتیم دسترسی پیدا کردیم و ورودی آن را 6 قرار دادیم حالا وقتی بازی رو اجرا کنی مقدار متغیر خصوصیمون 6 میشه.

خب حالا برای گرفتن مقدار از تابع برگشتی از نوع int و سطح دسترسی عمومی و با نام مثلا GetValue که باید داخل اسکریپت Controller بنویسیم استفاده میکنیم :
public int GetValue () {
    return val;
}
این تابع میاد و مقدار متغیر val رو برگشت میده، برای استفاده ازش هم مثل تابع قبلی  اما بدون ورودی :
controller.GetValue();
حالا این هیچ اتفاقی نمیفته این تابع رو باید توی یه متغیر که باید از نوع تابع باشه بریزید یا میتونید تبدیل کنید به نوع های مختلف مثلا یه متغیر تعریف میکنیم سطح دسترسی مهم نیست و نوع هم حتما باید از نوع تابع که int هست باشه و با نام مثلا hi حالا میایم و مقداری که تابع برگشت میده رو میریزیم داخل این متغیر hi :
hi = controller.GetValue():

امیدوارم موفق باشید 😊🌹

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
تجدید کد امنیتی