EloiStree / 2024_07_19_CharleroiStreetAR

Apprendre à faire Unity3D par le street AR pour commencer dans l'industrie du jeux vidéo
0 stars 0 forks source link

Workshop-Day : Installer Unity3D et publier un cube sur Window, Android et WebGL #169

Open EloiStree opened 1 month ago

EloiStree commented 1 month ago

Nous allons créer votre premier "Hello World" en version Unity3D : un magnifique cube. image

Nous le ferons tourner, ajouterons un peu de couleur, et le rendrons tout beau. Ensuite, nous prendrons le temps de le publier sur nos téléphones ainsi que sous forme de page web sur Itch.io.

Pour le fun, nous allons lui ajouter un peu de physique. Et voilà, vous aurez un superbe premier jeu à publier sur Itch.io.

Wow, tellement incroyable ! image


Créer un jeu de boite à Meuh sur Unity WebGL

image
Vidéo de l'exercice:

Nous allons installer Unity3D et créer une application avec un magnifique cube :)

Maintenant que nous avons un magnifique projet de cube, amusons-nous :

Nous pourrions continuer, mais nous avons déjà vu beaucoup de choses. Je vous invite à pratiquer, et nous verrons comment faire bouger notre cube pour en faire un drone volant.

Faire sauter la boite à Moeuh

image

Code:

Faire sauter le cube aléatoirement.

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

public class RandomJumpMono : MonoBehaviour
{

    public Transform m_whatToRotate;
    public Rigidbody m_toAffectRigidBody;

    public float m_jumpForceToApply = 10.0f;
    public ForceMode m_forceMode = ForceMode.Impulse;

    public Vector3 m_directionWorld = Vector3.up;

    public float m_torqueForceMin = 5;
    public float m_torqueForceMax = 30;
    public ForceMode m_rotateForceMode = ForceMode.Impulse;

    [ContextMenu("Jump")]
    public void Jump()
    {
        m_toAffectRigidBody.AddForce(m_directionWorld * m_jumpForceToApply, m_forceMode);
        m_toAffectRigidBody.AddTorque(
            Random.Range(m_torqueForceMin, m_torqueForceMax),
            Random.Range(m_torqueForceMin, m_torqueForceMax), 
            Random.Range(m_torqueForceMin, m_torqueForceMax),
            m_forceMode);

        //Un Vieux code.
        //m_whatToRotate.Rotate(Vector3.right, Random.Range(m_torqueForceMin, m_torqueForceMax), Space.World);
        //m_whatToRotate.Rotate(Vector3.forward, Random.Range(m_torqueForceMin, m_torqueForceMax), Space.World);

    }

}

Fait un action quand on touche un autre object:


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

public class OnCollisionEventMono : MonoBehaviour
{

    public LayerMask m_canCollideBy;
    public UnityEvent m_onCollision;

    public GameObject m_lastHitObject;

    public void OnCollisionEnter(Collision collision)
    {
        m_lastHitObject = collision.gameObject;

        if (IsInLayerMask(collision.gameObject, m_canCollideBy))
        {
            m_onCollision.Invoke();
        }

    }

    public static bool IsInLayerMask(GameObject obj, LayerMask mask) => (mask.value & (1 << obj.layer)) != 0;
    public static bool IsInLayerMask(int layer, LayerMask mask) => (mask.value & (1 << layer)) != 0;
}

Format plus brute

Si vous avez du temps pour apprendre à la maison, j'ai préparé un exercice détaillé que j'ai présenté sous deux formats différents :

  1. Format classique : J'explique comment réaliser l'exercice de manière traditionnelle.
  2. Format boîte à outils : Je montre comment transformer le projet en une série d'outils pour créer un jeu compatible avec toutes les plateformes.

Explorez l'exercice d'aujourd'hui dans son intégralité, avec quelques extras :

Dans cette vidéo, nous avons utilisé Audacity et Krita. Y a-t-il d'autres logiciels que vous pourriez installer ?

Oui, je vous encourage à explorer davantage ici :


Note

Depliage d'un cube image

EloiStree commented 1 week ago

Note additionnel

EloiStree commented 1 week ago

Un cube part à l'aventure

Si vous êtes plus sur un jeu en case pour votre cube: image https://github.com/EloiStree/2024_09_08_MoveCubeOnGrid

EloiStree commented 6 days ago

Solution Aujourd'hui

image
https://scratch.mit.edu/projects/1065077558/