4.7 KiB
4.7 KiB
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
🎯 Как использовать стакание
- В определении предмета установите
IsStackable = true - Установите
MaxCount- максимальное количество предметов в стаке - Система автоматически будет стакать предметы при добавлении в инвентарь
📈 Ожидаемые улучшения производительности
- Снижение нагрузки CPU на 15-25%
- Ускорение поиска предметов в инвентаре с O(n) до O(1)
- Меньше обращений к компонентам
- Оптимизация рендеринга эффектов
Система оружия
Основные компоненты
BaseWeapon- базовый класс для всех видов оружияWeaponItemDefinition- определение оружия с параметрамиAmmoItemDefinition- определение патронов (стакаемые по умолчанию)
Функции оружия
- Автоматическая и одиночная стрельба
- Система патронов с магазином и инвентарем
- Перезарядка с анимацией
- Эффекты выстрела и попадания
- Синхронизация по сети
Система инвентаря
- Поддержка стакания предметов
- Автоматическое объединение стаков
- Кэширование для производительности
- События для UI обновлений
Система камеры
Орбитальное движение
- Камера вращается вокруг пивота при движении мыши
- Компенсация поворота тела
- Плавная интерполяция позиции пивота
- Поддержка ADS режима
Управление
- Горизонтальное движение мыши - вращение по орбите
- Вертикальное движение мыши - наклон камеры
- Плавное следование за позицией глаз игрока
Сетевая синхронизация
Синхронизируемые данные
- Позиция и поворот игрока
- Состояние оружия (перезарядка, патроны)
- Экипированные предметы
- Анимации персонажа
Оптимизации сети
- Кэширование проверок владельца
- Уменьшение частоты обновлений
- Эффективная синхронизация состояний