NetworkServer Spawn

193
25 августа 2017, 22:04

Всем привет. В общем, проблема такова: Сделал мультиплеер в игре, написал вот этот скрипт:

using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
public class Player : NetworkBehaviour {
public GameObject cube;
void Start(){
    transform.position = GameObject.Find ("pos").transform.position;
    transform.rotation = GameObject.Find ("pos").transform.rotation;
}
[Command]
void CmdCreate(){
    Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
    RaycastHit hit;
    if (Physics.Raycast (ray, out hit))
    {
        if (hit.collider.tag == "Terrain"){
            var obj = (GameObject) Instantiate (cube, hit.point, Quaternion.identity);
            NetworkServer.Spawn (obj);
        }
    }
}
void Update () {
    if (!isLocalPlayer) {
        return;
    }
    var x = Input.GetAxis ("Horizontal") * 3.0f;
    var z = Input.GetAxis ("Vertical") * Time.deltaTime;
    transform.Translate (0, 0, z);
    transform.Rotate (0, x, 0);
    if (Input.GetMouseButtonDown(0))
    {
        CmdCreate ();
    }
}
public override void OnStartLocalPlayer(){
    GetComponentInChildren<MeshRenderer> ().material.color = Color.blue;
}
}

Этот скрипт для создания префаба по клику мыши. В общем, в окошке, в котором нажимаю LAN Host префаб создаётся как раз-таки по клику мыши и в позиции курсора, но в окне, в котором нажимаю LAN Client префаб создаётся, но не в том месте, где находится курсор, либо вообще не создаётся.

Консоль ошибок не выводит, только одно предупреждение, когда запускаю LAN Host:

The prefab 'Object' has multiple NetworkIdentity components. There can only be one NetworkIdentity on a prefab, and it must be on the root object. UnityEngine.Networking.NetworkManagerHUD:OnGUI()

Мне кажется, что это парадоксально. Если нет, то в чём проблема?

Может проблема в рейкасте? Почему-то в окне Server всё нормально. А в окне Client объект некорректно ставится по клику мыши. И что самое парадоксальное - это то, что когда компилирую и запускаю игру с Unity, то объект в Client можно ставить сколько угодно (хоть и не корректно ставится), а когда с exe'шника запускаю, то в клиетне можно поставить объект лишь один раз. Я такое вижу впервые!!! ЭТО ПАРАДОКС!!!

Херня какая-то, честно!

READ ALSO
Регулярное выражение для парсинга url

Регулярное выражение для парсинга url

Есть ссылка вида https://domaincom/someRoute/someRoute/

213
Путь по умолчанию File.Exists(path)

Путь по умолчанию File.Exists(path)

Если в FileExists(path), в path передать только имя файла, то где он будет его искать по дефолту?

238
Log4net переключение между базами

Log4net переключение между базами

Есть служба windows, которая занимается обновлением информации в разных БД , которые могут находится на разных серверахВ каждой из этих БД есть...

180
Как использовать || (or) в v-if на vue js (nuxt js)

Как использовать || (or) в v-if на vue js (nuxt js)

мне нужно создать условие, что если мы переходим на страницу '/brands' или '/brand'

240