Unity : aide-mémoire

Mouvement d’un GameObject

Par translation

void Update()
{
    // Mouvement vers la gauche (variable publique moveSpeed à définir)
    transform.Translate(Vector2.left * moveSpeed * Time.deltaTime);
}

Par modification de la position

void Update()
{
    // Mouvement vers la gauche (variable publique moveSpeed à définir)
    transform.position += Vector3.left * moveSpeed * Time.deltaTime;
}

Avec une interpolation linéaire

void Update()
{
    transform.position = Vector3.Lerp(transform.position, targetPosition, moveSpeed * Time.deltaTime);
}

En simulant un saut (RigidBody)

void Update()
{
    if(Input.GetMouseButtonDown(0))
    {
        rigidBody.velocity = Vector3.up * jumpForce;
    }
}

Modification de la position d’un GameObject

transform.position = new Vector3(positionX, positionY, positionZ);

Détection du clic sur l’écran du mobile/tablette

if(Input.GetMouseButtonDown(0))
{
     // Code à exécuter
}

Transformation des coordonnées écran en coordonnées monde

var worldPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition)

Secouer la caméra

public class GameController : MonoBehaviour
{
    public static GameController instance;
    Vector3 originalCameraPosition;

    // Start is called before the first frame update
    void Start()
    {
        instance = this;
        originalCameraPosition = Camera.main.transform.position;
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    public void ShakeCamera()
    {
        StartCoroutine("Shake");
    }

    IEnumerator Shake()
    {
        // Modifier 10x la position de la caméra pour créer l'effet de secousse
        for(int i=0; i<=10; i++)
        {
            // Position aléatoire pour la caméra
            var randomPosition = Random.insideUnitCircle * 0.2f;
            // Nouvelle position de caméra
            Camera.main.transform.position = new Vector3(randomPosition.x, randomPosition.y, originalCameraPosition.z);

            yield return null;
        }
        
        // Retrouver la position de départ de la caméra
        Camera.main.transform.position = originalCameraPosition;
    }
}

Persistance de données

Enregistrer des données

int highScore = 1234;

PlayerPrefs.SetInt("HighScore", highScore);

Lire des données

int highScore = 0;

if(PlayerPrefs.HasKey("HighScore"))
{
     highScore = PlayerPrefs.GetInt("HighScore");
}