توابع رویداد یا Event Functions در یونیتی
پنجشنبه, ۸ مهر ۱۳۹۵، ۰۱:۰۸ ب.ظ
gameover.blog.ir
شکل همون message ها هستند.به توابعی می گیم که روی می دهند. مثل توابعی که نیاز هست متناوب تکرار بشه.یا توابعی که تاچ یا غیره رو تشخیص بده یا برخورد دو گیم ابجکت و یا همینطوری الی آخر... .
مثال1:
حرکت گیم ابجکت به سمت راست(به جای Vector3.right میشد نوشت new Vector(1,0,0) که x محور راست و چپ هست برای گیم ابجکت در فضای سه بعدی به طوری که صورت کاراکتر به هر سمتی باشه از سمت راستش در اینجا در فضای سه بعدی حرکت انجام میشه در همون راستای محور x تعریف شده ی جهانی.
مثال 2:
حرکت به جلو با استفاده از ریجید بادی داده شده به گیم ابجکت.و حرکت یا شتاب مداوم به جلو(بیشتر برای پرتاب تیر بکار میره و این موارد. اگه بخواید لاستیک ماشین رو شتاب بدید از AddTorque استفاده میشه که شتاب چرخشی میدیم به لاستیک های عقب ماشین)
مثال3:
نگاه کردن دوبین به هدفی که در متغیر target قرار دادیمش:
مثال4:
نمایش یک متن توسط تابع Label تابع OnGUI که بارها توسط کارت گرافیک اجرا میشه.
مثال5:
رویداد OnCollisionEnter موقع برخورد با گیم ابجکت مقصد با برچسب دشمن:
شکل همون message ها هستند.به توابعی می گیم که روی می دهند. مثل توابعی که نیاز هست متناوب تکرار بشه.یا توابعی که تاچ یا غیره رو تشخیص بده یا برخورد دو گیم ابجکت و یا همینطوری الی آخر... .
مثال1:
حرکت گیم ابجکت به سمت راست(به جای Vector3.right میشد نوشت new Vector(1,0,0) که x محور راست و چپ هست برای گیم ابجکت در فضای سه بعدی به طوری که صورت کاراکتر به هر سمتی باشه از سمت راستش در اینجا در فضای سه بعدی حرکت انجام میشه در همون راستای محور x تعریف شده ی جهانی.
void Update() {
float distance = speed * Time.deltaTime * Input.GetAxis("Horizontal");
transform.Translate(Vector3.right * distance );
}
مثال 2:
حرکت به جلو با استفاده از ریجید بادی داده شده به گیم ابجکت.و حرکت یا شتاب مداوم به جلو(بیشتر برای پرتاب تیر بکار میره و این موارد. اگه بخواید لاستیک ماشین رو شتاب بدید از AddTorque استفاده میشه که شتاب چرخشی میدیم به لاستیک های عقب ماشین)
void FixedUpdate() {
Vector3 force = transform.forward * driveForce * Input.GetAxis("Vertical");
rigidbody.AddForce(force);
}
مثال3:
نگاه کردن دوبین به هدفی که در متغیر target قرار دادیمش:
void LateUpdate() {
Camera.main.transform.LookAt(target.transform);
}
مثال4:
نمایش یک متن توسط تابع Label تابع OnGUI که بارها توسط کارت گرافیک اجرا میشه.
Rect labelRect=new Rect(10, 10, 100, 20);
void OnGUI() { GUI.Label(labelRect, "Game Over"); }
مثال5:
رویداد OnCollisionEnter موقع برخورد با گیم ابجکت مقصد با برچسب دشمن:
void OnCollisionEnter(otherObj: Collision) {
if (otherObj.tag == "enemy") {
ApplyDamage(10);
}
}
۹۵/۰۷/۰۸