This package provides generic initialization interfaces for Unity projects:
IInitializable: Basic interface for objects that can be initialized.IInitializable<T>: Interface for objects that can be initialized with specific data.
- Standardizes initialization patterns for Unity components and systems
- Supports both parameterless and data-driven initialization
- Simple, reusable, and easy to integrate into your own classes
Implement IInitializable for objects that require a simple initialization step:
using ran.utilities;
public class GameManager : IInitializable
{
public bool IsInitialized { get; private set; }
public void Initialize()
{
// Initialization logic here
IsInitialized = true;
}
}Implement IInitializable<T> for objects that require initialization with data:
using ran.utilities;
public class Player : IInitializable<PlayerData>
{
public PlayerData Data { get; private set; }
public bool IsInitialized { get; private set; }
public void Initialize(PlayerData data)
{
Data = data;
// Initialization logic using data
IsInitialized = true;
}
}IsInitialized: Indicates if the object has been initializedInitialize(): Performs initialization logic
Data: The data used for initializationIsInitialized: Indicates if the object has been initializedInitialize(T data): Performs initialization logic with the provided data
Add the following line to your project's manifest.json dependencies:
"com.ran-utils.interface": "https://github.com/khalishzhafran/utils-interface.git"This will automatically fetch and update the package via Unity's Package Manager.
Copy the Runtime/Interface folder into your Unity project's Assets directory.
Copyright (c) 2025 Ran. Free to use, modify, and distribute for personal and commercial projects as long as this notice remains intact.