Recettes de fabrication
Fait partie de la section Architecture de jeu dans Unity du Journey Unity de Coddy. Leçon 63 sur 64.
Défi
DifficileAjoute ses recettes à CraftingBench.
- Ajoute
Ingredientsérialisable (publicitem,amount) etRecipe(publicresult,List<Ingredient> needs), ainsi qu’unList<Recipe> recipespublic. - Dans
Start,recipeButtons[i]appelleCraft(i). public void Craft(int index): si tous les ingrédients requis sont présents, retire-les, ajoute un exemplaire du résultat et consigneCrafted Axe.Refreshne rend un bouton cliquable que si sa recette peut être fabriquée.
Appuie sur « Jouer » et fabrique un radeau. Ensuite, appuie sur « Vérifier ».
Essayez vous-même
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class CraftingBench : MonoBehaviour
{
[SerializeField] private Inventory inventory;
[SerializeField] private Button[] recipeButtons;
[SerializeField] private Button woodButton;
[SerializeField] private Button stoneButton;
[SerializeField] private TMP_Text inventoryText;
void OnEnable()
{
inventory.Changed += Refresh;
}
void OnDisable()
{
inventory.Changed -= Refresh;
}
void Start()
{
woodButton.onClick.AddListener(() => inventory.Add("Wood", 1));
stoneButton.onClick.AddListener(() => inventory.Add("Stone", 1));
// Recettes : le bouton de la recette i permet de fabriquer la recette i
Refresh();
}
void Refresh()
{
// Recettes : un bouton de recette n’est cliquable que lorsque sa recette peut être fabriquée
inventoryText.text = "Inventory: " + inventory.Describe();
}
}
Toutes les leçons de Architecture de jeu dans Unity
1Des composants, pas des hiérarchies
De petits composantsUn script de base pour les ennemisComposants abstraitsDes composants qui fonctionnent ensembleRécapitulatif : tourelle modulaireRécapitulatif : canon double4Données sérialisées
Classes sérialisablesListes dans l’InspecteurÉnumérations dans l’InspecteurRécapitulatif : table de butinRécapitulatif : tirer le butin2Les interfaces dans Unity
IDamageableInterfaces et TryGetComponentGetComponentsRécapitulatif : touche d’interactionLe plus proche à portée5ScriptableObjects
Ressources de donnéesStatistiques des armesParamètres partagésSauver le ventLes vagues comme donnéesRécapitulatif : base de données des objetsRécapitulatif : acheter dans la boutique3Événements
Les événements C# dans UnityS’abonner dans OnEnableChamps UnityEventLes événements pilotent l’interfaceRécapitulatif : fenêtre de succèsRécapitulatif : minuteur de la fenêtreEntraînez-vous par vous-même : Playground Unity