Главная » Статьи » Unity3D Multiplayer |
Инстанцирование объектов и сцены в сети. Инстанцирование - создание экземпляра класса. В нашем случае, грубо говоря, копирование объектов сцены каждому подключенному к серверу клиенту. Эта операция необходима для того, чтобы клиент видел объекты на сцене, а иначе он подключится, но ничего не увидит. Добавим сетевые компоненты движка к нашему игроку (куб) и напишем, что он должен инстанцироваться. 1) Выделите префаб игрока и добавьте компонент NetworkView: Components -> Miscellaneous -> NetworkView. 2) Когда компонент появится на вашем объекте, измените параметр свойства State Synchronization на Reliable Delta Compressed. Это нужно для того, чтобы ваш игрок синхронизировался и был виден для всех игроков. 3) Добавьте Rigidbody к игроку, для того чтобы он стал твердым телом : Выберите префаб -> Component -> Physics-> Rigidbody. 4) Создайте empty GameObject назовите его Spawn.. Параметры объекта должны быть: Position (0,5,0), Rotation (0,0,0), Scale (1,1,1). 5) Создайте новый JavaScript файл, назовите его Instantiate. 6) Откройте его и введите туда:
7) Перетащите данный скрипт в Spawn. 8) Выберите Spawn и измените параметр SpaceCraft на "Player (Transform)”. Сделать это можно кликнув на свойство и в списке найти префаб игрока. Если вы проверите, то заметите, у подключенного к серверу клиента игрок называется не Player, а Player(Clone), это и есть инстанцирование. Давайте создадим новый скрипт, под названием Control и введем вот такой код:
Добавьте этот файл в объект Spawn. Теперь скомпилируйте игру, создайте сервер в движке Юнити и подключитесь к нему уже со скомпилированной игры. Теперь вы можете заметить, что каждый куб при нажатии на кнопку «Up», движется независимо друг от друга. Поздравляю, вы закончили курс создания мультиплеерной игры, его легко доработать, следующий урок будет интеграция мультиплеера в игру StarTrooper. | |||
Категория: Unity3D Multiplayer | Добавил: Шаке (16.03.2012) | |||
Просмотров: 29626 | Комментарии: 1
| Теги: |
Всего комментариев: 1 | ||
| ||