com.fiber.fibercore
v1.3.2
Published
FiberCore is a lightweight framework for fastest game development, it contains managers that help you to work with game data, resources, UI, audio, etc.
Maintainers
Readme
FiberCore it's a lightweight game core that allows you to use Data Management, UI Management, Scene Management etc. Here is small example of game (without gameplay logic) developed using FiberCore.
First of all, install package using this guide: Get Started
Game Loader Example
public class ExampleGameLoader : MonoBehaviour
{
private ExampleData gameData;
private void Awake()
{
FiberCore.Instances.OnInstanceChanged += OnInstanceChanged;
FiberCore.PrefData.RegisterType<ExampleData>();
FiberCore.PrefData.Load();
FiberCore.PrefData.GetData(out gameData);
FiberCore.Instances.LoadInstance(gameData.NextLevelID);
}
private void OnInstanceChanged(Instance obj)
{
if (obj)
{
FiberCore.UI.GetScreen<GameUI>().Show();
obj.As<ExampleLevel>().Example_Start();
}
else
{
FiberCore.UI.GetScreen<GameUI>().Hide();
}
}
}Game Data Example
public class ExampleData: BasicPrefData
{
public int NextLevelID = 1;
}Game UI Example
public class GameUI : UIScreen
{
}Game Instance Example
public class ExampleLevel : Instance
{
private const string res_playerPath = "prefabs/playerPrefab";
[SerializeField]
private AudioClip levelStartSound;
[SerializeField]
private AudioListener audioListener;
protected override void OnReady()
{
FiberCore.Audio.SetListener(audioListener);
FiberCore.Resources.Load<GameObject>(res_playerPath);
}
protected override void OnUnload()
{
FiberCore.Resources.Unload(res_playerPath);
}
public void Example_Start()
{
FiberCore.Audio.Play(levelStartSound);
var player = FiberCore.Resources.Get<GameObject>(res_playerPath);
Instantiate(player);
}
public void Emample_Complete()
{
if(FiberCore.PrefData.GetData(out ExampleData data))
{
data.NextLevelID = ID + 1;
FiberCore.PrefData.Save();
FiberCore.Instances.LoadInstance(data.NextLevelID);
}
}
}