تبلیغات
مقالات سه بعدی و برنامه نویسی - ساخت بازی->برنامه نویسی در unity3d->قسمت دوم
 

ساخت بازی->برنامه نویسی در unity3d->قسمت دوم

نوشته شده توسط :حسین حاجی پور
شنبه 14 آذر 1388-01:35 ب.ظ

به نام خالق یکتا

 

امروز هم قسمت بعدی برنامه نویسی در unity3d رو گذاشتم.

و انشالله اگه شد یک مثال عملی این برنامه رو خواهم گذاشت.

ورودی های سخت افزاری

برای اینکه بتوانید دکمه ای را از صفحه کلید بخوانید می توانید از این تابع استفاده کنید.

Input.GetAxis

فرم کار این تابع به این صورت است.

GetAxis (axisName : string) : float

توجه داشته باشید که axisName را باید قبلا تعریف کرده باشید,خود نرم افزار چند تا را معرفی کرده است.

شما می توانید از طریق Edit>Project settings>input کلید های خود را به نرم افزار معرفی کنید.

مثال:

var zRostation=0;

function Update () {

zRostation=-(Input.GetAxis("Horizontal")*5);

transform.Rotate(0,0,zRostation);

}

این کد باعث می شود وقتی شما کلید های a,dیا left,right را بفشارید,جسم در جهت z هایش به چرخش درآید.

 

تابع Target

var target : Transform;

این یک تعریف برای ایجاد یک object هست

ولی اسم target برای انجین منحصر به فرد است و می توان در داخل پنجره lnspector مقدار بگیرد.

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

 

بردار یا Vector3

بردار برای ایجاد حرکت برای اشیا در انجنین تعریف می شوند

vector3(x , y , z);

بردار Vector3.zero

برای اینکه خیلی سریع مختصات یک بردار را صفر کنید از این تابع استفاده کنید.

مثال:

transform.position = Vector3.zero;

انجین بردارهای آماده دیگر هم  برای ما قرار داده است که دیگر لازم نیست که به بردار مقدار عددی بدهیم مثلا:

Vector3.forward // Vector3(0, 0, 1)

Vector3.one// Vector3(1, 1, 1)

Vector3.right // Vector3(1, 0, 0)

Vector3.up // Vector3(0, 1, 0)

 

آرایه ها

 

آرایه این اجازه را به شما می دهند که بتوانید چندین متغیر را در یک متغیر ذخیره کنید.

نحوه تعریف یک آرایه به شکل زیر است:

var نام آرایه= new Array تعداد عناصر));

Var values = new float[10];

var arr = new Array ("Hello","Iran",….);

نحوه دسترسی به متغیر ها ی آرایه:

print(arr[0]);//را چاپ می کند."Hello"کلمه

اگر می خواهید مقداری را در آرایه ذخیره کنید:

arr.Add("Zmin");

اگر می خواهید طول آرایه را بدست آورید یا تغییر دهید:

print(arr.length);//طول آرایه را چاپ می کند

arr.length = 5;//برای تغییر طول آرایه

اگر می خواهید آرایه را خالی کنید و طول آن را صفر کنید:

arr.Clear();

اگر می خواهید دو ارایه را به هم بچسپانید:

var arr = new Array ("Hello", "World");
var arr2 = new Array ("!");

arr.Concat(arr2);

print(arr);

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

var hello = new Array ("c", "a", "b");
hello.Sort();
print(hello);

 // print's a, b, c

ایجاد اشیا در زمان اجرا

گاهی اوقات لازم است در این اجرای بازی یک یا چند شی تولید شوند مثلا ایجاد تیر گلوله یک تفنگ

این برنامه چند مدل آماده برای ایجاد اشیا در اختیار ما قرار داده است

به عنوان مثال:

var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube.transform.position = Vector3(0, 0.5, 0);
//یک مکعب ایجاد می کند
var sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
sphere.transform.position = Vector3(0, 1.5, 0);
//یک دایره را ایجاد می کند
var capsule = GameObject.CreatePrimitive(PrimitiveType.Capsule);
capsule.transform.position = Vector3(2, 1, 0);
//یک کپسول را ایجاد می کند
var cylinder = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
cylinder.transform.position = Vector3(-2, 1, 0);

// یک استوانه را ایجاد می کند

 

اگر از اشیای مورد نظر خود برای ایجاد در هنگام اجرای بازی استفاده کنید ,چند نکته را لازم است بدانید

تابعی هست به نام Instantiate که برای انجام اینکار به منظور گرفته شده است.

شکل کلی این تابع

var perfeb : Rigidbody;
var create : Rigidbody;
create = Instantiate(perfeb, transform.position, transform.rotation);

perfeb:جسمی که می خواهیم در زمان اجرا ایجاد شود.

Create:جسم ایجاد شده در این قسمت ریخته می شود و با استفاده از همین نام قابل تغییر است(یعنی می توان آن را جابجا یا حذف کرد.)

transform.position, transform.rotation:  محل ایجاد جسم را مشخص می کند.

 

نکته:در قسمت perfeb و create می توان از جنس Transform نیز استفاده کرد,کاربرد این نوع جنس برای ایجاد سیستم ذره ای به درد می خورد.





درباره وبلاگ:



آرشیو:


طبقه بندی:


آخرین پستها:


پیوندها:


نویسندگان:


نظرسنجی:


آمار وبلاگ:







The Theme Being Used Is MihanBlog Created By ThemeBox