3Dmajid و anti-military خدمت 2 تا دوست عزیز حالا که علاقه دارن بدونن بگم که :
توی برنامه نویسی شی گرا ما با 2 تا مفهوم Cohesion ( انسجام یا قدرت عملیاتی ) و Coupling ( اتصال یا وابستگی ) مواجه هستیم.
حالا این که هرکدوم از این دو پارامتر زیر مجموعه داره ، کاری نداریم ، ولی در کل کلاسی خوبه انسجام بالا و اتصال پایین داشته باشه.
انسجام : پنهان سازی اطلاعات و این که هر کلاس به تا حد امکان فقط یک وظیفه ی منفرد داشته باشه.
اتصال : ارتباط بیش از حد کلاس ها با یکدیگه ( بیش از حد )
خوب این که دوستمون میگه باید تا حد امکان از این کار جلوگیری کنیم ، درست میگه ، ولی استدلال هاش اشتباهه.
این که مجید میگه در شی گرا اتصال نیازه ، ایشون هم درست میگه ، ولی باز مثالش اشتباهه.
1- در کلاس هاتون تا حد امکان از Static و Public برای متغییر ها استفاده نکنین ( Information Hiding ) . پس چه جوری بشون دسترسی داشته باشیم ؟
2- از این که تعداد توابع کلاستون داره زیاد میشه ( به صورت منطقی البته ) نترسید.
اما جواب 1 : در برنامه نویسی شی گرا نیاز هست به متد ها و پرورتی های کلاس دیگه دسترسی داشته باشیم ( آقا مجید ) ولی نباید به صورت مستقیم اجازه ی دسترسی هر کلاس به متغییر های کلاس دیگه رو بدیم.
برای این کار باید از توابع کمک بگیرید ( #C کار ها هم Get and Set کمکشون میکنه ) یعنی اگی میخواین یه متغییر رو مقدارش رو عوض کنید ، متغییر رو پابلیک نکنین و بعدشم GetComponent و ... .
متغییر پرایویت باشه ، تابعتون پابلیک باشه ، از کلاس یه آبجکت تولید کنید ( به جای NEW کردن به کلاس رفرنس بدین ) و به وسیله متد متغییرتون رو مقدار دهی کنین.
این که بعد ها اسم کلاستون تغییر میکنه دوست عزیز مشکل نیست ، الان IDE های قوی از Full
Environment Rename پشتیبانی میکنن ، یعنی اگه تو VS2010 شما اسم یک کلاس رو تغییر بدین ، ادیتور میتونه به صورت خودکار اسم کل کلاس رو در تمام کلاس ها تغییر بده.
دیدیم بحثتون فنیه ، گفتم توضیح کامل بدم.
moz : سایت Unity3d.com مثال های سبک و سنگین خوبی داره ، دمبال رفرنس فارسی نباش ، برنامه نویسی که شما یاد گرفتی تفاوت زیادی با برنامه نویسی بازی داره ، پس باید تلاش کنی. ( گفتم فارسی نه ، پس سرچ کن Unity Scripting Tut )