Собственно вопрос в название темы, после того как я перенес мп с unity 4 на unity 5, появились ошибки
Код
Received state update for view id' AllocatedID: 250' but the NetworkView doesn't exist
, взял пример из интернета, тоже самое, из чего я делаю вывод что проблема именно в различиях Unity Network на Unity 4 и на Unity 5, какие отличия у них?
Сообщение отредактировал FlyOfFly - Вторник, 22 Марта 2016, 01:54
В Unity 5 появилась новая сеть и она работает по-другому, её ещё называли UNET, она сейчас в официальной документации. Старый код пока должен работать, но это всё считается устаревшим. Ошибка, которая у тебя, не обязательно связана с переходом. Вот здесь официальные обучалки в виде текста http://unity3d.com/ru/learn/tutorials/topics/multiplayer-networking, а здесь неофициальное адаптированное видео по этому тексту http://forum.unity3d.com/threads.....390812.
Ошибка, которая у тебя, не обязательно связана с переходом.
Я это понимаю и поэтому написал
ЦитатаLertmind ()
взял пример из интернета, тоже самое
Спасибо за туториалы под NNet все равно ~~~ Щас узнал что Unet платный, печально, ну да ладно, буду тогда сидеть под 4 Unity ^_^
Добавлено (22 марта 2016, 11:07) --------------------------------------------- вернулся на unity 4, так же
Код
using UnityEngine; using System.Collections;
public class control : MonoBehaviour {
[HideInInspector] public bool facingRight = true; [HideInInspector] public bool jump = false; public float moveForce = 365f; public float maxSpeed = 5f; public float jumpForce = 1000f; public Transform groundCheck;
private string myName = ""; public string MyName { get { return myName; } } private Vector2 syncStartPosition = Vector2.zero; private Vector2 syncEndPosition = Vector2.zero; public bool isMine = false; void Awake () { anim = GetComponent<Animator>(); rb2d = GetComponent<Rigidbody2D>(); networkView.viewID = Network.AllocateViewID(); // присваиваем уникальный идентификатор в сети networkView.stateSynchronization = NetworkStateSynchronization.Unreliable; // нам подходит способ быстрой передачи с потерями, поскольку наше передвижение интерполируется lastSynchronizationTime = Time.time; // последнее время синхронизации }
// Update is called once per frame void Update () { grounded = Physics2D.Linecast(transform.position, groundCheck.position, 1 << LayerMask.NameToLayer("Ground"));
if (Input.GetButtonDown("Jump") && grounded) { jump = true; } }
void FixedUpdate() { Debug.LogError("NAME:"+myName); if (networkView.isMine) { float h = Input.GetAxis ("Horizontal");
anim.SetFloat ("Speed", Mathf.Abs (h));
if (h * rb2d.velocity.x < maxSpeed) rb2d.AddForce (Vector2.right * h * moveForce);
if (Mathf.Abs (rb2d.velocity.x) > maxSpeed) rb2d.velocity = new Vector2 (Mathf.Sign (rb2d.velocity.x) * maxSpeed, rb2d.velocity.y);
if (h > 0 && !facingRight) Flip (); else if (h < 0 && facingRight) Flip ();
Добавлено (23 марта 2016, 13:39) --------------------------------------------- Видимо никто не поможет Хотя бы скажите проблема в скриптах или нет? у пустого объекта повешенны скрипты Client,Server, у игрока Control и Netview, у которого путь указан на Control, а у Control на Netview
Сообщение отредактировал FlyOfFly - Среда, 23 Марта 2016, 13:40
Щас узнал что Unet платный, печально, ну да ладно, буду тогда сидеть под 4 Unity ^_^
С чего ты взял? Там есть локальная сеть (которая только и была в старой системе) и есть сервис, где Unity предлагает свои сервера, там до 20 человек бесплатно написано. Чтобы проверить я запускал tanks из официальных примеров http://forum.unity3d.com/threads/unet-sample-projects.331978/ (сначала запускал 2dshooter, но он не заработал), локальная сеть там работает, а для мультиплеера на серверах Unity нужна настройка.
С чего ты взял? Там есть локальная сеть (которая только и была в старой системе) и есть сервис, где Unity предлагает свои сервера, там до 20 человек бесплатно написано. Чтобы проверить я запускал tanks из официальных примеров http://forum.unity3d.com/threads/unet-sample-projects.331978/ (сначала запускал 2dshooter, но он не заработал), локальная сеть там работает, а для мультиплеера на серверах Unity нужна настройка.
Прочитал в интернете, что сервера нужно покупать и про платный, я как раз и говорил интернет, а не локалку
Цитата
You must have a Unity Pro license or subscription to use the Live mode of the service.
Сообщение отредактировал FlyOfFly - Четверг, 24 Марта 2016, 00:34
Ты написал, что платный UNet, а это неверное утверждение и ты зачем-то вернулся к устаревшей сети, когда мог написать тоже самое по-нормальному. Про мультиплеер очевидно, за сервера всегда надо платить, только дурак будет давать это бесплатно.
Ты написал, что платный UNet, а это неверное утверждение и ты зачем-то вернулся к устаревшей сети, когда мог написать тоже самое по-нормальному. Про мультиплеер очевидно, за сервера всегда надо платить, только дурак будет давать это бесплатно.
Ну вот поэтому я и вернулся к устаревшей, так как там есть подключение пользователя к пользователю, что в принципе я считаю нормально