لرنینگ تی وی

طعم شیرین یادگیری

ساخت بازی اتومبیل رانی در یونیتی – حرکت به عقب خودرو


تاریخ انتشار

تعداد نظرات

تعداد بازدید

زمان تقریبی مطالعه
05/مه/2013
۲۶۱۵ روز پیش
۴ دیدگاه ۴۵۵۹ ۲ دقیقه

Making Car Game in unity3dحرکت به عقب خودرو و چراغ های خودور

با سلامی دوباره خدمت کاربران LearningTV

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

جهت مشاهده ی کدهای استفاده شده در این آموزش به ادامه مطلب مراجعه نمایید.

 

[stextbox id=”black”]توی این قسمت از کدهای سی شارپ استفاده شده است که شما در زیر آن ها را مشاهده می نمایید.[/stextbox]

کدهای #C استفاده شده در این آموزش:

using UnityEngine;
using System.Collections;

public class CarControll : MonoBehaviour {
    public WheelCollider WheelFL;
    public WheelCollider WheelFR;
    public WheelCollider WheelRL;
    public WheelCollider WheelRR;
    public Transform WheelFLTrans;
    public Transform WheelFRTrans;
    public Transform WheelRLTrans;
    public Transform WheelRRTrans;
    public float LowestSteerAtSpeed = 50;
    public float LowSpeedSteerAngle = 10;
    public float HighSpeedSteerAngle = 1;
    public float Deceleration = 40;
    public float TopSpeed = 150;
    public float CurrentSpeed;
    public float MaxReverseSpeed = 50;
    public float maxTorque = 50;
    public GameObject BackLightOBJ_Right;
    public GameObject BackLightOBJ_Left;
    public Material IdleBackLightMaterial;
    public Material BrakeBackLightMaterial;
    public Material ReverseBackLightMaterial;
	// Use this for initialization
	void Start () {
        rigidbody.centerOfMass = new Vector3(0,-0,0);
	}

	// Update is called once per frame
	void FixedUpdate () {
        float SpeedFactor = rigidbody.velocity.magnitude / LowestSteerAtSpeed;
        float CurrentSteerAngle = Mathf.LerpAngle(LowSpeedSteerAngle,HighSpeedSteerAngle,SpeedFactor);
        if (Input.GetButton("Vertical") == false)
        {
            WheelRR.brakeTorque = Deceleration;
            WheelRL.brakeTorque = Deceleration;
        }
        else
        {
            WheelRR.brakeTorque =0;
            WheelRL.brakeTorque =0;
        }
        CurrentSteerAngle *= Input.GetAxis("Horizontal");
        CurrentSpeed = 2 * 3.14f* WheelRL.radius * WheelRR.rpm * 60 / 1000;
        CurrentSpeed = Mathf.Round(CurrentSpeed);
        if (CurrentSpeed < TopSpeed && CurrentSpeed>-MaxReverseSpeed)
        {
            WheelRR.motorTorque = maxTorque * Input.GetAxis("Vertical");
            WheelRL.motorTorque = maxTorque * Input.GetAxis("Vertical");
        }
        else
        {
            WheelRR.motorTorque =0;
            WheelRL.motorTorque =0;
        }
        WheelFL.steerAngle = CurrentSteerAngle;
        WheelFR.steerAngle = CurrentSteerAngle;
	}
    void Update()
    {
        BackLight();
        WheelFLTrans.Rotate(WheelFL.rpm*360/60*Time.deltaTime,0,0);
        WheelFRTrans.Rotate(WheelFR.rpm * 360 / 60 * Time.deltaTime, 0, 0);
        WheelRLTrans.Rotate(WheelRL.rpm * 360 / 60 * Time.deltaTime, 0, 0);
        WheelRRTrans.Rotate(WheelRR.rpm * 360 / 60 * Time.deltaTime, 0, 0);
        WheelFLTrans.localEulerAngles = new Vector3(WheelFLTrans.localEulerAngles.x,WheelFL.steerAngle-WheelFLTrans.localEulerAngles.z,WheelFLTrans.localEulerAngles.z);
        WheelFRTrans.localEulerAngles = new Vector3(WheelFRTrans.localEulerAngles.x, WheelFR.steerAngle - WheelFRTrans.localEulerAngles.z, WheelFRTrans.localEulerAngles.z);
    }
    void BackLight()
    {
        if (CurrentSpeed > 0 && Input.GetAxis("Vertical") < 0)
        {
            BackLightOBJ_Left.renderer.material = BrakeBackLightMaterial;
            BackLightOBJ_Right.renderer.material = BrakeBackLightMaterial;
        }
        else if (CurrentSpeed < 0 && Input.GetAxis("Vertical") > 0)
        {
            BackLightOBJ_Left.renderer.material = BrakeBackLightMaterial;
            BackLightOBJ_Right.renderer.material = BrakeBackLightMaterial;
        }
        else if (CurrentSpeed < 0 && Input.GetAxis("Vertical") < 0)
        {
            BackLightOBJ_Left.renderer.material = ReverseBackLightMaterial;
            BackLightOBJ_Right.renderer.material = ReverseBackLightMaterial;
        }
        else
        {
            BackLightOBJ_Left.renderer.material = IdleBackLightMaterial;
            BackLightOBJ_Right.renderer.material = IdleBackLightMaterial;
        }
    }
}

[stextbox id=”Account_Sale”]جهت خرید این آموزش با قیمت ۴۵۰ تومان می توانید از فرم زیر استفاده نمایید.[/stextbox]

[parspalpaiddownloads id=”24″]

[stextbox id=”alert”]

در ضمن دوستان نظر یادتون نره .

اگه سوالی هم داشتید در بخش Forum.learningTV.ir می توانید سوالتون رو بپرسید.

[/stextbox]

 

۴ نظر برای "ساخت بازی اتومبیل رانی در یونیتی – حرکت به عقب خودرو"


  1. نوشته شده توسط  

    سلام آقا سید میدونم این مطلب قدیمی ولی من تازه عضو سایت شما شدم خیلی سایت عالی دارید واعقا بی تعارف میگم درستتئن درد نکنه اموزشها بی نظیرن در رابطه با این مطلاب مخواستم بگب بهتر نبود برای چراغها از پونت لایت استفاده میکردین من توی یه اموزشی دیدم واقا خیلی زیبا شده بودبهر حال موفق باشید باور کنید کل یونیتی رو با آموزشهای شما یاد گرفتم خدا تمام رفتگانتونو بیامرزه هم سایتتون هم آموزشها حرف نداره.

    پاسخ

    پاسخ
    • نوشته شده توسط  

      چرا بالاخره خوبی یونیتی اینه که هر کسی یه چیزی به ذهنش می رسه و همه هم درست فکر می کنند.

      چون با یونیتی می تونید یک کار رو به چندین روش انجام بدید.

      با تشکر
      سید

      پاسخ پاسخ

  2. نوشته شده توسط  

    لینک ۵ تا ۱۸ خرید آموزش بازی اتومبیل رانی توسط یونیتی خرابه لطفا برطرف کنید

    پاسخ

    پاسخ
    • نوشته شده توسط  

      از آدرس زیر مبلغ ۹۰۰۰ تومان واریز کنید بعد اطلاع دهید تا لینک های دانلود براتون ایمیل شوند:
      https://learningtv.ir/حمایت

      با تشکر
      سید

      پاسخ پاسخ

ارسال دیدگاه

نام (*)
پست الکترونیکی (*)
وبسایت

مطالب مرتبط