вот решил взяться за онлайн, (в юнити уже большего года, пора уж )
вот скрипт подключения:
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using gui = UnityEngine.GUI;
public class GameMenu : MonoBehaviour {
public GameObject playerPrefab;
string ip = "127.0.0.1";
string port = "4211";
bool connected;
public void CreatePlayer()
{
connected = true;
var g = (GameObject)Network.Instantiate(playerPrefab, transform.position, transform.rotation, 1);
g.GetComponentInChildren<Camera>().enabled = true;
gameObject.GetComponent<Camera>().enabled = false;
}
void OnDisconnectedFromServer()
{
connected = false;
}
void OnPlayerDisconnected(NetworkPlayer pl)
{
Network.DestroyPlayerObjects(pl);
}
void OnConnectedToServer()
{
CreatePlayer();
}
void OnServerInitialized()
{
CreatePlayer();
}
void OnGUI()
{
if(!connected)
{
ip = gui.TextField(new Rect(10,10,90,20),ip);
port = gui.TextField(new Rect(10,40,90,20),port);
if(gui.Button(new Rect(10,70,90,20), "Connect"))
{
Network.Connect(ip,int.Parse(port));
}
if(gui.Button(new Rect(10,100,90,20), "Host"))
{
Network.InitializeServer(10, int.Parse(port), true);
}
}
}
}
using System.Collections;
using gui = UnityEngine.GUI;
public class GameMenu : MonoBehaviour {
public GameObject playerPrefab;
string ip = "127.0.0.1";
string port = "4211";
bool connected;
public void CreatePlayer()
{
connected = true;
var g = (GameObject)Network.Instantiate(playerPrefab, transform.position, transform.rotation, 1);
g.GetComponentInChildren<Camera>().enabled = true;
gameObject.GetComponent<Camera>().enabled = false;
}
void OnDisconnectedFromServer()
{
connected = false;
}
void OnPlayerDisconnected(NetworkPlayer pl)
{
Network.DestroyPlayerObjects(pl);
}
void OnConnectedToServer()
{
CreatePlayer();
}
void OnServerInitialized()
{
CreatePlayer();
}
void OnGUI()
{
if(!connected)
{
ip = gui.TextField(new Rect(10,10,90,20),ip);
port = gui.TextField(new Rect(10,40,90,20),port);
if(gui.Button(new Rect(10,70,90,20), "Connect"))
{
Network.Connect(ip,int.Parse(port));
}
if(gui.Button(new Rect(10,100,90,20), "Host"))
{
Network.InitializeServer(10, int.Parse(port), true);
}
}
}
}
делаю FPS MMO шутер, использую свою сист-му оружия, игрока создал, вроде норм.. но при тесте на одном компе:
управляю игроком N1, игрок 2 двигается, игрок 1 стоит и наоборот, как проверку движения, использую:
Синтаксис:
Используется csharp
if(networkView.isMine)
но не помогает, так же кое-как убил игроком 1, игрока 2, у игрока 2, в окне, видно, как упала камера с регдолом трупа, а в окне игрока 1, тот же, бегающий под управлением игрока 1, противник...
помогите пожалуйста разобраться)
и кстати, для игры по интернету, в настройках проекта, выбирать какой то network emulation или дефултный оставить?