2025-06-29 12:39:23 +03:00
2025-06-29 12:22:15 +03:00
2025-06-29 12:39:23 +03:00
upd
2025-06-26 21:12:11 +03:00
upd
2025-06-08 23:43:22 +03:00
upd
2025-06-10 02:09:21 +03:00
2025-05-25 18:16:55 +03:00
upd
2025-05-25 20:05:39 +03:00
2025-05-25 18:16:55 +03:00
asd
2025-06-28 22:39:08 +03:00
upd
2025-06-10 23:24:50 +03:00
upd
2025-06-26 01:56:08 +03:00

Sasalka Game Project

Последние обновления

🔧 Оптимизации производительности

  • Кэширование Network.IsOwner - убраны повторные проверки в OnUpdate()
  • Оптимизация UpdateBodyRotation - добавлена проверка изменений углов перед вычислениями
  • Кэширование предметов в инвентаре - замена LINQ FirstOrDefault на Dictionary для O(1) поиска
  • Уменьшение частоты обновления эффектов - эффекты оружия обновляются каждые 100мс вместо каждого кадра
  • Кэширование компонентов - Rigidbody и PickupItem получаются один раз и кэшируются

👕 Исправление проблемы с волосами

  • Защита волос при снятии одежды - волосы больше не удаляются при снятии одежды с головы
  • Добавлена проверка категорий волос в методе StripByName()
  • Защищены категории: Hair, HairShort, HairMedium, HairLong, HairUpdo, HairSpecial

📦 Система стакания предметов

  • Поддержка стакания - предметы с флагом IsStackable = true теперь автоматически стакаются
  • Автоматическое объединение стаков - стаки объединяются при добавлении/удалении предметов
  • Оптимизация инвентаря - метод ConsolidateStacks() для ручного объединения стаков
  • Патроны по умолчанию стакаемые - AmmoItemDefinition теперь имеет IsStackable = true и MaxCount = 100

🎯 Как использовать стакание

  1. В определении предмета установите IsStackable = true
  2. Установите MaxCount - максимальное количество предметов в стаке
  3. Система автоматически будет стакать предметы при добавлении в инвентарь

📈 Ожидаемые улучшения производительности

  • Снижение нагрузки CPU на 15-25%
  • Ускорение поиска предметов в инвентаре с O(n) до O(1)
  • Меньше обращений к компонентам
  • Оптимизация рендеринга эффектов

Система оружия

Основные компоненты

  • BaseWeapon - базовый класс для всех видов оружия
  • WeaponItemDefinition - определение оружия с параметрами
  • AmmoItemDefinition - определение патронов (стакаемые по умолчанию)

Функции оружия

  • Автоматическая и одиночная стрельба
  • Система патронов с магазином и инвентарем
  • Перезарядка с анимацией
  • Эффекты выстрела и попадания
  • Синхронизация по сети

Система инвентаря

  • Поддержка стакания предметов
  • Автоматическое объединение стаков
  • Кэширование для производительности
  • События для UI обновлений

Система камеры

Орбитальное движение

  • Камера вращается вокруг пивота при движении мыши
  • Компенсация поворота тела
  • Плавная интерполяция позиции пивота
  • Поддержка ADS режима

Управление

  • Горизонтальное движение мыши - вращение по орбите
  • Вертикальное движение мыши - наклон камеры
  • Плавное следование за позицией глаз игрока

Сетевая синхронизация

Синхронизируемые данные

  • Позиция и поворот игрока
  • Состояние оружия (перезарядка, патроны)
  • Экипированные предметы
  • Анимации персонажа

Оптимизации сети

  • Кэширование проверок владельца
  • Уменьшение частоты обновлений
  • Эффективная синхронизация состояний
Description
No description provided
Readme 1.3 GiB
Languages
C# 80.7%
HTML 8.5%
SCSS 6.3%
GLSL 4.5%