Mirror RUS
  • Mirror Networking
  • API Reference
  • ДевЛог
    • Краткая история Mirror
  • Руководство пользователя
    • Общее
      • Приступая к работе
      • Шаблоны скриптов
      • Change Log
        • 2022 Change Log
        • 2021 Change Log
        • 2020 Change Log
        • 2019 Change Log
      • Удалено
      • Migration Guide
      • Интеграция
      • Timestamp Batching
      • TCP и UDP
      • CCU
      • SyncDirection
      • Round Trip Time (RTT)
      • Качество подключения
      • Компенсация задержки
      • History Bounds
      • Тесты
    • FAQ
      • Порядок исполнения
    • Транспорты
      • KCP Transport
      • Telepathy Transport
      • WebSockets Transport
        • Reverse Proxy
      • Multiplex Transport
      • Latency Simulaton Transport
      • Ignorance
      • LiteNetLib Transport
      • FizzySteamworks Transport
      • FizzyFacepunch Transport
    • Компоненты
      • Network Animator
      • Network Authenticators
        • Basic Authenticator
        • Device Authenticator
      • Network Behaviour
      • Network Discovery
      • Network Identity
      • Network Manager
      • Network Manager HUD
      • Network Ping Display
      • Network Profiler
      • Network Rigidbody
      • Network Lerp Rigidbody
      • Network Room Manager
      • Network Room Player
      • Network Start Position
      • Network Statistics
      • Network Transform
        • Snapshot Interpolation
      • Устаревшее
        • Network Proximity Checker
        • Network Scene Checker
        • Network Match Checker
        • Network Owner Checker
    • Interest Management
      • Spatial Hashing
      • Distance
      • Scene
      • Match
      • Team
      • Custom
      • Legacy
    • Гайды
      • Контроль
      • ID
      • Атрибуты
      • Синхронизация времени
      • Типы данных
      • Сериализация
      • Синхронизация
        • SyncVar
        • SyncVar Hook
        • SyncEvent (Устарело)
        • SyncList
        • SyncDictionary
        • SyncHashSet
        • SyncSortedSet
      • Взаимодействие
        • Удаленные действия
        • Обратные вызовы NetworkManager
        • Обратные вызовы NetworkBehaviour
        • Network Messages
      • GameObject
        • Game Object игрока
        • Пользовательский спавн персонажа
        • Пользовательские функции спавна
        • Объекты на сцене
        • Поднятие, Бросание, и дочерние объекты
    • Примеры
      • Additive Levels
      • Additive Scenes
      • Basic
      • Billiards
      • Multiple Additive Scenes
      • Pong
      • Room
      • Tanks
  • Хостинг
    • Руководство по хостингу
    • Гайд по облачному хостингу
      • AWS
      • Google Cloud
      • Oracle Free Tier
    • Хостинг с удаленным рабочим столом
  • Безопасность
    • Обзор системы безопасности
    • Этапы защиты от читов
    • Читы и античиты
  • Гайды от Коммьюнити
    • Видео туториалы
    • Источники
    • Mirror Quick Start Project
    • Unity для MMORPG
    • Unity Canvas HUD
    • Ready Up And Die!
    • iOS AppStore UDP
    • Mirror Docker Guide
    • Gitbook Guide
    • Mirror Branding
    • Contributors Agreement
Powered by GitBook
On this page
  1. Руководство пользователя
  2. Гайды
  3. GameObject

Game Object игрока

Mirror обрабатывает игровые объекты игроков иначе, чем игровые объекты неигровых пользователей. Когда новый игрок присоединяется к игре (когда новый клиент подключается к серверу), игровой объект этого игрока становится игровым объектом “локальный игрок” на клиенте этого игрока, и Unity связывает соединение игрока с игровым объектом игрока. Unity связывает один игровой объект player с каждым человеком, играющим в игру, и направляет сетевые команды к этому отдельному игровому объекту. Игрок не может вызвать Command для игрового объекта другого игрока, только для своего собственного.

Класс NetworkBehaviour (на основе которого вы создаете свои сетевые скрипты) имеет свойство называемое isLocalPlayer. Для игрового объекта player каждого клиента Mirror устанавливает этому свойству значение true в сценарии NetworkBehaviour и вызывает вызов OnStartLocalPlayer(). Это означает, что у каждого клиента есть свой игровой объект, настроенный подобным образом, потому что на каждом клиенте другой игровой объект представляет локального игрока.

Только игровой объект игрока, который является “вашим” (с вашей точки зрения как игрока), имеет поставленный флаг isLocalPlayer. Обычно вы должны проверять этот флаг в скрипте, чтобы определить, следует ли обрабатывать ввод, заставлять камеру отслеживать игровой объект или выполнять любые другие действия на стороне клиента, которые должны выполняться только для игрока, принадлежащего этому клиенту.

Игровые объекты Player представляют игрока (то есть человека, играющего в игру) на сервере и имеют возможность выполнять команды от клиента игрока. Эти Command представляют собой защищенные удаленные вызовы процедур от клиента к серверу. В этой системе, управляемой сервером, другие игровые объекты на стороне сервера, не являющиеся игроками, не могут получать Command непосредственно от игровых объектов на стороне клиента. Это делается как для обеспечения безопасности, так и для снижения сложности создания вашей игры. Направляя все входящие Command от пользователей через игровой объект player, вы можете гарантировать, что эти сообщения поступают из нужного места, от нужного клиента и могут обрабатываться централизованно.

Network Manager добавляет игрока каждый раз, когда клиент подключается к серверу. Однако в некоторых ситуациях вы можете не захотеть добавлять игроков до тех пор, пока не произойдет событие ввода - например, пользователь не нажмет кнопку “Пуск” на контроллере. Чтобы отключить автоматическое создание объекта игрока, перейдите к компоненту Network Manager в инспекторе и уберите чекбокс Auto Create Player.

PreviousGameObjectNextПользовательский спавн персонажа

Last updated 1 year ago