这是第一个 Unity 开放项目的repo,是 Unity 和社区合作创建的一个小型开源游戏演示,第一款游戏是一款名为 Chop Chop 的动作冒险游戏。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

63 行
1.6 KiB

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameManager : MonoBehaviour
{
[SerializeField] private QuestManagerSO _questManager = default;
[SerializeField] private GameStateSO _gameState = default;
[Header("Inventory")]
[SerializeField] private ItemSO _rockCandyRecipe = default;
[SerializeField] private ItemSO _sweetDoughRecipe = default;
[SerializeField] private ItemSO[] _finalRecipes = default;
[SerializeField] private InventorySO _inventory = default;
[Header("Broadcasting on")]
[SerializeField] private VoidEventChannelSO _addRockCandyRecipeEvent = default;
[SerializeField] private VoidEventChannelSO _cerisesMemoryEvent = default;
[SerializeField] private VoidEventChannelSO _decideOnDishesEvent = default;
private void Start()
{
StartGame();
}
private void OnEnable()
{
_addRockCandyRecipeEvent.OnEventRaised += AddRockCandyRecipe;
_cerisesMemoryEvent.OnEventRaised += AddSweetDoughRecipe;
_decideOnDishesEvent.OnEventRaised += AddFinalRecipes;
}
private void OnDisable()
{
_addRockCandyRecipeEvent.OnEventRaised -= AddRockCandyRecipe;
_cerisesMemoryEvent.OnEventRaised -= AddSweetDoughRecipe;
_decideOnDishesEvent.OnEventRaised -= AddFinalRecipes;
}
void AddRockCandyRecipe()
{
_inventory.Add(_rockCandyRecipe);
}
void AddSweetDoughRecipe()
{
_inventory.Add(_sweetDoughRecipe);
}
void AddFinalRecipes()
{
foreach (ItemSO item in _finalRecipes)
{
_inventory.Add(item);
}
}
void StartGame()
{
_gameState.UpdateGameState(GameState.Gameplay);
_questManager.StartGame();
}
}