Comment devenir un meilleur programmeur dans Unity

Avec l'essor de l'IA et de l'apprentissage automatique, il est facile de supposer que les programmeurs ne seront plus nécessaires à l'avenir. Cependant, cela peut prendre beaucoup de temps avant que l'intelligence artificielle ne soit capable d'interpréter des tâches plus complexes, telles que l'abstraction, l'optimisation, l'interconnexion, etc.

Par conséquent, il n'est jamais trop tard pour affiner vos connaissances en programmation dans Unity, pour devenir non seulement un programmeur plus efficace mais aussi, le moment venu, capable de superviser le code écrit par d'autres et de les guider dans la bonne direction.

1. L'optimisation prématurée n'est pas toujours la racine de tous les maux

C'est un thème commun de vilipender l'optimisation prématurée comme une étape inutile lors du prototypage de quelque chose, cependant, cela ne devrait pas toujours être le cas, en particulier lors de l'ajout de petites choses, dont vous savez avec certitude qu'elles ont un grand impact sur les performances, et quand il est temps de faire la vraie optimisation, le temps a déjà été gagné en prenant soin des petites choses. Utilisons gameObject.name comme exemple:

using UnityEngine;

public class ObjectNameScript : MonoBehaviour
{
    public string objectName;

    void Update()
    {
        objectName = gameObject.name;
		Debug.Log(objectName);
    }
}

Bien que l'utilisation de gameObject.name puisse sembler inoffensive, comme nous l'avons découvert dans le post "Unity Optimisez votre jeu à l'aide de Profiler", obtenir le nom d'un objet alloue assez un peu de mémoire, ce qui multiplie le problème en l'appelant à chaque image. Donc tout de suite, nous pouvons déplacer cette affectation vers la fonction Démarrer (sauf si le nom de l'objet change fréquemment, dans ce cas, il serait plus efficace de ne pas utiliser le nom tout à fait et utiliser une variable à la place).

using UnityEngine;

public class ObjectNameScript : MonoBehaviour
{
    public string objectName;

    void Start()
    {
        objectName = gameObject.name;
    }

    void Update()
    {
        Debug.Log(objectName);
    }
}

2. Écrire un code plus court

L'écriture d'un code plus court permet toujours de gagner du temps, ce qui le rend plus lisible et plus facile à entretenir à l'avenir.

Il existe de nombreuses façons d'écrire du code plus court, et dans le cas de Unity, un code C#. Par exemple, en simplifiant l'instruction if/else à l'aide du symbole '?':

int numA = 10;
int numB = 5;
int result;
if (numA > numB) {
    result = numA;
} else {
    result = numB;
}
Debug.Log(result);

Le même code peut être raccourci en:

int numA = 10;
int numB = 5;
int result = (numA > numB) ? numA : numB;
Debug.Log(result);

Une autre façon de raccourcir le code consiste à placer le code répétitif dans sa propre fonction, puis à utiliser cette fonction à la place.

3. Codez d'abord, posez des questions plus tard

Bien que la planification soit une partie essentielle de tout projet, s'il s'agit d'un prototype ou si l'idée n'est pas encore gravée dans le marbre, il est important de commencer à coder dès que possible, car quelle que soit l'ampleur de la planification, dès que vous arrivez à travail, vous découvrirez toujours quelque chose qui peut être fait mieux/plus efficacement, ou que certaines idées ne sont pas aussi bonnes en pratique que d'autres, et vice-versa.

Dans l'ensemble, très peu de choses vous rendront meilleur en programmation, comme vous mettre au travail et commencer à écrire le code.

4. Playtest, avant d'apporter des modifications

Lorsque vous avez une démo jouable, il est essentiel de commencer à la tester dès que possible pour déterminer où les choses peuvent être améliorées, car souvent, cela peut ne pas être apparent simplement en regardant le code.

Une fois que vous aurez maîtrisé l'art des tests de jeu et de la collecte de commentaires, vous deviendrez un programmeur plus efficace, en sachant exactement où chercher pour améliorer le code.

Unity fournit bien sûr de nombreux outils utiles en cours de route, tels que Console (pour repérer les avertissements et les erreurs), Profiler pour les performances de débogage, et le reste de l'interface (Scene, Hierarchy, Inspecteur, etc. pour surveiller le déroulement du jeu/projet).

5. L'optimisation est un processus graduel

Nous pouvons tous convenir que les performances du jeu peuvent tout faire ou défaire et constituent l'un des piliers d'un lancement réussi. Mais les performances du jeu ne peuvent être évaluées qu'en effectuant les tests de jeu dans divers scénarios et conditions, afin de simuler le jeu du point de vue des joueurs réguliers.

Nous avons discuté de nombreuses méthodes pour déboguer, optimiser et trouver les goulots d'étranglement dans votre code de jeu.

Pour en savoir plus sur l'optimisation de votre jeu sur ordinateur ou sur mobile, vous pouvez consulter les articles ci-dessous:

  1. Unity Optimisez votre jeu à l'aide de Profiler
  2. Améliorer les performances d'un jeu mobile dans Unity 3D
  3. Unity Conseils d'optimisation

Si vous avez vos propres conseils pour devenir un meilleur programmeur en Unity, n'hésitez pas à les publier dans les commentaires.

Articles suggérés
Travailler avec des tableaux et des listes dans Unity Code
Comment ajouter un effet de lunette de sniper dans Unity
Comment déclencher une cinématique dans Unity
Création d'un GrabPack dans Unity inspiré de Poppy Playtime
Implémentation d'interactions cinétiques dans Unity
Utilisation du contrôleur Runtime Animator dans Unity
Comment lire des fichiers vidéo dans Unity