Unity reproduire facilement le comportement de la voiture de Hill Climb Racing

 

 

Si vous connaissez « Hill Climb Racing » sur plateforme mobile, je ne vous apprend rien si je vous dit que le GamePlay est basé sur le

déplacement et le comportement de la voiture.

 

 

Dans ce tutoriel vidéo ci dessous je vous présente une « asset gratuite » permettant de reproduire son comportement très facilement avec Unity.

 

Cette Asset gratuite développé par João Ramiro est un simple script permettant de gérer le déplacement gauche droite de la voiture mais aussi sa rotation. En suivant la vidéo vous trouverez un exemple d’utilisation du modèle ci dessous :

Le script de déplacement :

using UnityEngine;
using System.Collections;

public class carController : MonoBehaviour {

    public WheelJoint2D frontwheel;
    public WheelJoint2D backwheel;

    JointMotor2D motorFront;

    JointMotor2D motorBack;

    public float speedF;
    public float speedB;

    public float torqueF;
    public float torqueB;


    public bool TractionFront = true;
    public bool TractionBack = true;


    public float carRotationSpeed;

    // Use this for initialization
    void Start () {
    
    }
    
    // Update is called once per frame
    void Update () {
    
        if (Input.GetAxisRaw ("Vertical") > 0) {


            if (TractionFront) {
                motorFront.motorSpeed = speedF * -1;
                motorFront.maxMotorTorque = torqueF;
                frontwheel.motor = motorFront;
            }

            if (TractionBack) {
                motorBack.motorSpeed = speedF * -1;
                motorBack.maxMotorTorque = torqueF;
                backwheel.motor = motorBack;
            }

        } else if (Input.GetAxisRaw ("Vertical") < 0) {


            if (TractionFront) {
                motorFront.motorSpeed = speedB * -1;
                motorFront.maxMotorTorque = torqueB;
                frontwheel.motor = motorFront;
            }

            if (TractionBack) {
                motorBack.motorSpeed = speedB * -1;
                motorBack.maxMotorTorque = torqueB;
                backwheel.motor = motorBack;
            }

        } else {

            backwheel.useMotor = false;
            frontwheel.useMotor = false;

        }

        if (Input.GetAxisRaw ("Horizontal") != 0) {

            GetComponent<Rigidbody2D> ().AddTorque (carRotationSpeed * Input.GetAxisRaw ("Horizontal") * -1);

        }
    }
}

 

N’oubliez pas de Liker et de partager cette article, et de m’encourager grâce a un petit commentaire ci dessous 🙂

 

 

 

A propos de upln 261 Articles
En informatique le problème se situe souvent entre la chaise et le clavier !

Soyez le premier à commenter

Poster un Commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.