Cours Débutant Unity Gratuit Créer le jeu du palet

 

Dans cette vidéo je vous propose de créer un jeu typique des Flandres que vous allez retrouver dans nos estaminets si vous visitez notre formidable région : le jeu du palet.

Il existe beaucoup de variante de ces jeux en bois :

Comment se déroule une partie ?, vous disposez de palets en bois que vous allez lancer grâce a un élastique, le but est de viser les trous en fond de table et de marquer le plus de point.

C’est ce que nous allons mettre en place dans ce cours vidéo, pas à pas, de façon simple afin de vous faire progrésser avec Unity. Cette vidéo s’adresse aux personnes qui débutent avec Unity et le C#.

Vous pouvez récupérer les scripts ci dessous, et même le code source du projet. Mais je vous conseille de suivre la vidéo et de la reproduire pour assimiler plus facilement les rudiments du développement avec UNITY.

 

palet_script.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class palet_script : MonoBehaviour {

    public SpringJoint sjA, sjB;
    Rigidbody rb;
    bool lance = false;

    private void OnMouseDrag()
    {
        float distance_to_screen = Camera.main.WorldToScreenPoint(gameObject.transform.position).z;
        Vector3 pos_move = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance_to_screen));
        transform.position = new Vector3(pos_move.x, transform.position.y, pos_move.z); 
    }

    private void OnMouseUp()
    {
        Destroy(sjA);
        Destroy(sjB);
        lance = true;
        gameObject.tag = "Untagged";
    }
    void Start () {
        sjA.connectedBody = GameObject.Find("A").GetComponent<Rigidbody>();
        sjB.connectedBody = GameObject.Find("B").GetComponent<Rigidbody>();
        rb = GetComponent<Rigidbody>();
    }
    
    
    void FixedUpdate () {
        
        if(rb.velocity==Vector3.zero && lance)
        {
            lance = false;
            GameObject.Find("Canvas").GetComponent<GameManager>().SpawnPalet();

        }

    }

    private void OnCollisionEnter(Collision collision)
    {
        if(lance)
        {
            GetComponent<AudioSource>().Play();
        }
        
    }
}

 

GameManger.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class GameManager : MonoBehaviour {

    public Text TxtPoints, TxtNb;
    public int points = 0, nb = 6;
    GameObject Go;
    public GameObject PaletPrefab;
    public Transform sp;
    public GameObject TxtStart;

    void Start () {
        SpawnPalet();
    }

    public void SpawnPalet()
    {
        Go = Instantiate(PaletPrefab);
        nb--;
        UiUpdate();
        GameObject.Find("Elastic").GetComponent<elastic_script>().Initialize();
        
    }


    void UiUpdate()
    {
        TxtPoints.text = "Points " + points;
        TxtNb.text = "Palets " + nb;

        if(nb<0)
        {
            TxtStart.SetActive(true);
            nb = 0;
            UiUpdate();
        }
    }
}

elastic_script

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class elastic_script : MonoBehaviour {

    LineRenderer lr;
    Transform palet, A, B;
    public bool lache;

    void Start () {
        Initialize();
    }
    
    
    public void Initialize () {
        lr = GetComponent<LineRenderer>();
        palet = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>();
        A = GameObject.Find("A").GetComponent<Transform>();
        B = GameObject.Find("B").GetComponent<Transform>();
        lr.positionCount = 3;
        lache = false;
    }

    private void Update()
    {
        if(!lache)
        {
            lr.SetPosition(0, A.transform.position);
            lr.SetPosition(1, palet.transform.position);
            lr.SetPosition(2, B.transform.position);
        }        
    }

    private void OnTriggerEnter(Collider other)
    {
        lache = true;
        lr.SetPosition(0, A.transform.position);
        lr.SetPosition(1, A.transform.position);
        lr.SetPosition(2, B.transform.position);
    }
}

AddPoint.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AddPoints : MonoBehaviour {

    
    void OnTriggerEnter () {
        transform.GetComponentInParent<GameManager>().points += int.Parse(gameObject.name);
    }
    
    
    void Update () {
        
    }
}

Restart.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class Restart : MonoBehaviour {

    void Update () {
        if(Input.GetButtonDown("Fire1"))
        {
            SceneManager.LoadScene("game");
        }

    }
}

Téléchargement du code source du jeu (Package Unity)

 

vous avez aimé ce cours pour débuter le développement de jeu vidéo avec Unity, je vous propose d’aller plus loin et de devenir développeur de jeu vidéo.

En partenariat avec Udemy je vous propose un cours complet à tarif exceptionnel :

24€ au lieu de 200€

soit 88% de réduction !!!

 

Grâce au contenu de ce cours vidéo de plus de 45h accessible a vie vous serez capable :

  • de développer des jeux en 2D et 3D

  • maîtriser les principaux composant d’unity

  • écrire du code en C#

  • de monétiser vos jeux grâce a la publicité

  • de distribuer vos jeux sur le store Google Play

  • de créer des ennemis avec Intelligence artificielle

  • acquérir beaucoup d’autre compétences….

 

En passant par le site de formation Udemy, des outils sont mis a votre disposition pour dialoguer en cas de problème avec votre formateur, en l’occurrence ici moi ! les ressources des cours sont disponibles en téléchargement, et des tests sont disponibles pour compléter les chapitres.

UPLN.

 

 

 

 

 

A propos de upln 200 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.