باسمه تعالی
(جهت مشاهده تصاویر در اندازه بزرگ تر، روی آنها کلیک نمایید)
یک پروژه جدید ایجاد کنید و پکیج های زیر را درون ریزی نمایید:
یک Terrain که همان زمین بازی است در پروژه ایجاد کنید.
یک Directional light به عنوان نور محیط اضافه نمایید.
مدل ماشین مورد نظر را وارد پروژه نمایید. یا مدل ماشین زیر را از وب سایت علم آوران دانلود کرده و استفاده نمایید.
بعد از وارد کردن مدل ماشین پیشنهادی، تیک خاصیت Mesh Renderer مربوط به Collider پایین و بالای آن را بردارید و کامپوننت Box Collider را به Collider پایین و بالای آن اضافه نمایید.

اکنون مدل شما مشابه تصویر زیر است. نام مدل را به car تغییر دهید.
خاصیت rigidbody را به شئ اعمال کنید تا خواص فیزیکی روی ماشین تاثیرگذار باشد و وزن آن را در خاصیت Mass برابر ۱۵۰۰ کیلوگرم قرار دهید.
چهار چرخ ماشین را انتخاب کرده و کامپوننت Wheel Collider را به آنها اضافه نمایید. خاصیت Radius این چهار کامپوننت را ۰٫۴۱ تنظیم نمایید.
در پوشه Scripts یک اسکریپت سی شارپ جدید با نام carControl ایجاد نموده و کد زیر را در آن نوشته و ذخیره نمایید. توضیحات:
Input.GetAxis(“Vertical”) زمانی که کلیدهای جهت نمای بالا و پایین فشار داده شدند.
Input.GetAxis(“Horizontal”) زمانی که کلیدهای جهت نمای چپ و راست فشار داده شدند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
using UnityEngine; using System.Collections; public class carControl : MonoBehaviour { public WheelCollider WheelFL; public WheelCollider WheelFR; public WheelCollider WheelRL; public WheelCollider WheelRR; public float maxTorque=50; // Use this for initialization void Start () { } // Update is called once per frame void FixedUpdate () { WheelRR.motorTorque = maxTorque * Input.GetAxis("Vertical"); WheelRL.motorTorque = maxTorque * Input.GetAxis("Vertical"); WheelFL.steerAngle = 10 * Input.GetAxis("Horizontal"); WheelFR.steerAngle = 10 * Input.GetAxis("Horizontal"); } } |
به محیط نرم افزار یونیتی برگردید و اسکریپت نوشته شده را به مدل car نسبت دهید و چرخ
ها را به متغیرهای تعریف شده نسبت دهید.
اکنون بازی قابل اجرا خواهد بود. فیلم اجرای بازی در ادامه قابل مشاهده می باشد:
مشاهده می شود که در سرعت های بالا، در هنگام پیچیدن به چپ و راست، ماشین چپ می کند. برای رفع این مشکل باید مرکز ثقل ماشین را تنظیم کنیم.
برای این کار، اسکریپت زیر را به بخش Start کد اضافه کنید.
1 |
rigidbody.centerOfMass = new Vector3(0,-0.2f,0); |
کد کلی:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
using UnityEngine; using System.Collections; public class carControl : MonoBehaviour { public WheelCollider WheelFL; public WheelCollider WheelFR; public WheelCollider WheelRL; public WheelCollider WheelRR; public float maxTorque=50; // Use this for initialization void Start () { rigidbody.centerOfMass = new Vector3(0,-0.2f,0); } // Update is called once per frame void FixedUpdate () { WheelRR.motorTorque = maxTorque * Input.GetAxis("Vertical"); WheelRL.motorTorque = maxTorque * Input.GetAxis("Vertical"); WheelFL.steerAngle = 10 * Input.GetAxis("Horizontal"); WheelFR.steerAngle = 10 * Input.GetAxis("Horizontal"); } } |
فیلم اجرای بازی در ادامه قابل مشاهده می باشد: