Библиотека по юнити UnityCharasterCore

Документация будет расширяться дальше. Сейчас — аккуратный старт и прямой путь к GitHub.

Документация

UnityCharacterCore

UnityCharacterCore — базовая библиотека для модульной разработки в Unity 6+.

Предоставляет набор интерфейсов для создания гибких систем: урон, хп игрока, хп врага, типы врагов, имя, уровни и ранги. Архитектура легко расширяется и масштабируется.

🚀 Установка

Скопируйте папку UnityCharacterCore в директорию Assets вашего Unity‑проекта.

💡 Философия

Библиотека построена на принципах чистого кода и модульности. Используется современный C# (8.0+), доступный в Unity 6.

🛠 Примеры структур и использования

1. Система урона — IDamagePlayer

using UnityEngine;

namespace UnityCharacterCore.DamagePlayer
{
    public interface IDamagePlayer
    {
        float damagePlayer { get; }
        void DamagePlayer();
    }
}

Пример реализации:

using UnityEngine;
using UnityCharacterCore.DamagePlayer;

public class EnemyHealth : MonoBehaviour, IDamagePlayer
{
    public float damagePlayer => 10f;

    public void DamagePlayer()
    {
        Debug.Log($"Получен урон: {damagePlayer}");
    }

    void Start()
    {
        IDamagePlayer entity = this;
        entity.DamagePlayer();
    }
}

2. Типы сущностей — EnemyType

using UnityEngine;

namespace UnityCharacterCore.Enemy
{
    public enum EnemyType
    {
        Normal,
        Elite,
        Boss
    }
}

3. Характеристики врагов — IEnemyCharasters

using UnityEngine;

namespace UnityCharacterCore.EnemyCharasters
{
    public interface IEnemyCharasters
    {
        string NameEnemy { get; }
        float HealthEnemy { get; }
        float damageEnemy { get; }
        void InfoEnemyHealth();
        void DamageEnemy();
    }
}

4. Здоровье игрока — IHealthPlayer

using UnityEngine;

namespace UnityCharacterCore.HealthPlayer
{
    public interface IHealthPlayer
    {
        float HealthPlayer { get; }
        void InfoHealthPlayer();
    }
}

5. Система уровней — ILevel

using UnityEngine;

namespace UnityCharacterCore.Level
{
    public interface ILevel
    {
        int level { get; }
        int maxLevel { get; }
        int minLevel { get; }
        int Exp { get; }
        int MaxExp { get; }
        int MinExp { get; }

        void OnLevelChange();
        void OnLevelInfo();
        void GetExp();
        void GetMaxExp();
    }
}

6. Система имён — INameable

using UnityEngine;

namespace UnityCharacterCore.Name
{
    public interface INameable
    {
        string NamePlayer { get; }
        void NamePlayerInfo();
    }
}

7. Система рангов — IRank

using UnityEngine;

namespace UnityCharacterCore.Rank
{
    public interface IRank
    {
        int rank { get; }
        int maxRank { get; }
        int minRank { get; }
        int Exp { get; }
        int maxExp { get; }
        int minExp { get; }

        void GetCurrentRank();
        void GetMaxRank();
        void GetCurrentExp();
        void GetExpToNextRank();
    }
}

📌 Пример полной реализации (Level + Name)

using UnityEngine;
using UnityCharacterCore.Level;
using UnityCharacterCore.Name;

public class NewMonoBehaviourScript : MonoBehaviour, ILevel, INameable
{
    [SerializeField] private int lvl = 0;
    [SerializeField] private int maxLvl = 60;
    [SerializeField] private int minLvl = 1;

    [SerializeField] private string namePlayer = "SenejuDev";

    [SerializeField] private int exp = 0;
    [SerializeField] private int maxExp = 1000;
    [SerializeField] private int minExp = 0;

    public int level => lvl;
    public int maxLevel => maxLvl;
    public int minLevel => minLvl;

    public int Exp => exp;
    public int MaxExp => maxExp;
    public int MinExp => minExp;

    public string NamePlayer => namePlayer;
}

Загрузки

Загрузки доступны через GitHub. Там всегда лежат актуальные версии и релизы.