Unity5.Создаем Онлайн игру. ч.3

Unity5.Создаем Онлайн игру. ч.3

Как создать онлайн игру в Unity5.

В этой части урока по созданию онлайн игры на Unity5 мы исправим некоторые баги, которые мы обнаружили в предыдущей части и напишем несколько скриптов. Первый будет сохранять персонажа при переходе на другую сцену и второй, будет определять каждому новому персонажу камеру и синхронизировать движение персонажей для более сглаженного отображения анимации.

Откроем предыдущий проект и добавим к нашему префабу персонажа новый скрипт dontdestroy:

using System;
using UnityEngine;

public class dontdestroy : MonoBehaviour
{
    public static Transform playerTransform;

    private void Awake()
    {
        if (dontdestroy.playerTransform = null)
        {
            UnityEngine.Object.Destroy(base.gameObject);
            return;
        }
        UnityEngine.Object.DontDestroyOnLoad(base.transform.gameObject);
        dontdestroy.playerTransform = base.transform;
    }
}

Так же, добавьте такие компоненты как Photon Animator View и Photon Transform View эти компоненты помогут нам в отображении анимации персонажа.

animator

transform
Добавим еще один скрипт и назовем его PlayerSync:

using Photon;
using System;
using UnityEngine;

public class PlayerSync : Photon.MonoBehaviour
{
    public Camera CharterCamera;

    public AudioListener CharteraudioListener;

    private void Update()
    {
        if (base.photonView.isMine)
        {
            base.GetComponent().enabled = true;
            this.CharterCamera.enabled = true;
            this.CharteraudioListener.enabled = true;
        }
        else
        {
            base.GetComponent().enabled = false;
        }
    }

    private void OnPhotonSerializeView(PhotonStream strem, PhotonMessageInfo info)
    {
        Vector3 position = base.transform.position;
        Quaternion rotation = base.transform.rotation;
        strem.Serialize(ref position);
        strem.Serialize(ref rotation);
        if (strem.isReading)
        {
            base.transform.position = position;
            base.transform.rotation = rotation;
        }
    }
}

Так же, поместим его на префаб персонажа и укажем в нем камеру персонажа.

sync
Почти закончили, осталось добавить один компонент Photon View и добавит к нему наш Controller, PlayerSync и PhotonAnimatorView.

photonview
Далее отключаем некоторые компоненты Controller, Dontdestroy и Camera у персонажа, т.к. в скрипте выше мы указали что если при запуске сервера Photon «Мы это мы» а не другой персонаж, то эти компоненты включатся.

player

camera
Сохраняем и пробуем запустить проект.

Game
Если все настроено правильно, то должно все получится. Анимация проигрывается, персонажи появляются ну а остальное как обычно, зависит от вашей фантазии. Удачных проектов!

P.S. Архив с проектом нашей мини онлайн игры можно скачать здесь.

P.P.S. Возможно потребуется ввод Pun кода для работоспособности Photon.

Предыдущий урок              На главную          Следующий урок

Обсудить на форуме


1 Комментарий

Оставить Комментарий