[TUTORIAL] Criando um simples Multiplayer [UNITY 5]
+23
Valakinhas
artplayer
mafipt
Phph09
richerd
Eduardoro39
als260502
cody0033
perxgamertv
capitaoDisprosio
lantreco63
George Lucas Vieira
Weslley
Cezar2016
dbzronaldo
Matheus Fiori
anizioNoob
edugamer69
AndyShow
matheuseduarddo
GustavoMaster
NOME-ALEATORIO
Stipp
27 participantes
Página 1 de 1
[TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Olá pessoal, hoje vou trazer um tutorial simples e bem util.
Sem mais delongas, crie um cena e adicione um cubo aumente a sua escala e renomeie para "Chao";
Crie um Empty e renomeie para "Spawn";
Agora crie 2 scripts c#, MultiplayerController e Player e copie e cole o que estou deixando aqui em baixo:
Multiplayer Controller:
Player:
Crie um cubo, e um material, coloque a cor deste material verde, adicione rigidbody, networkView e o script player e salve o prefab (arrastando para a aba assets);
Faça a mesma coisa mais crie outro material vermelho;
Agora vai em File->Build Settings->Player Settings e marque a opção Run In Background;
Depois em Edit->Project Settings->Network e mude o Sendrate para 100;
Agora é só compilar e testar:
Tela de criar ou conectar em um servidor:
Tela do projetinho rolando :D :
Qualquer duvida, só perguntar, se eu estiver online respondo com maior prazer
Caso queira baixar o projeto, segue o link: https://mega.nz/#!3MMx1aLT!YHypMNN7glSKgSpskZu6P1h_NWDzpRqY2YyfCHHgiKk
Criado por Everaldo Júnior [Stipp]
Sem mais delongas, crie um cena e adicione um cubo aumente a sua escala e renomeie para "Chao";
Crie um Empty e renomeie para "Spawn";
Agora crie 2 scripts c#, MultiplayerController e Player e copie e cole o que estou deixando aqui em baixo:
Multiplayer Controller:
- Código:
using UnityEngine;
using System.Collections;
public class MultiplayerController : MonoBehaviour {
//Variaveis para pegar as classes
public Servidor servidor;
public Cliente cliente;
//Variaveis para spawn e player
public Transform spawnPoint;
public GameObject playerPrefabVerde;
public GameObject playerPrefabVermelho;
private bool gui = true;
//classes do servidor e do cliente
[System.Serializable]
public class Servidor{
public string nome;
public int maxJogadores;
public int porta;
}
[System.Serializable]
public class Cliente{
public string nomeJogador;
public string ip;
public int porta;
public string cor;
}
//on gui para mostrar os botoes
void OnGUI () {
if(gui){
//INICIO DA BOX DE CRIAR SERVIDOR\\
GUI.Box(new Rect(10,10,180,270), "Criar servidor");
GUI.Label(new Rect(20,40,160,20), "Nome:");
servidor.nome = GUI.TextField(new Rect(20,70,160,20), servidor.nome);
GUI.Label(new Rect(20,100,160,20), "Max. Jogadores:");
servidor.maxJogadores = int.Parse(GUI.TextField(new Rect(20,130,160,20), servidor.maxJogadores.ToString()));
GUI.Label(new Rect(20,160,160,20), "Porta:");
servidor.porta = int.Parse(GUI.TextField(new Rect(20,190,160,20), servidor.porta.ToString()));
GUI.Label(new Rect(20,220,160,20), "IP: "+Network.player.ipAddress);
if(GUI.Button(new Rect(20,250,160,20), "Criar Servidor")){
CriarServidor();
}
//FIM DA BOX DE CRIAR SERVIDOR\\
//INICIO DA BOX DE CONECTAR SERVIDOR\\
GUI.Box(new Rect(210,10,180,270), "Conectar no servidor");
GUI.Label(new Rect(220,40,160,20), "Nome do jogador:");
cliente.nomeJogador = GUI.TextField(new Rect(220,70,160,20), cliente.nomeJogador);
GUI.Label(new Rect(220,100,160,20), "IP:");
cliente.ip = GUI.TextField(new Rect(220,130,160,20), cliente.ip);
GUI.Label(new Rect(220,160,160,20), "Porta:");
cliente.porta = int.Parse(GUI.TextField(new Rect(220,190,160,20), cliente.porta.ToString()));
if(GUI.Button(new Rect(220,220,80,20), "Verde")){
cliente.cor = "verde";
}
if(GUI.Button(new Rect(300,220,80,20), "Vermelho")){
cliente.cor = "vermelho";
}
if(GUI.Button(new Rect(220,250,160,20), "Conectar")){
ConectarServidor();
}
//FIM DA BOX DE CONECTAR SERVIDOR\\
}
}
//void para criar o servidor
private void CriarServidor(){
Network.InitializeServer(servidor.maxJogadores, servidor.porta, true);
gui = false;
}
//void para conetar
private void ConectarServidor(){
gui = false;
Network.Connect(cliente.ip, cliente.porta);
}
//void que verifica se o player esta conectado e caso esteje spawna o jogador de acordo com a cor
void OnConnectedToServer(){
gui = false;
if (cliente.cor == "vermelho") {
Network.Instantiate(playerPrefabVermelho, spawnPoint.position, spawnPoint.rotation, 1);
}
if(cliente.cor == "verde"){
Network.Instantiate(playerPrefabVerde, spawnPoint.position, spawnPoint.rotation, 1);
}
if(cliente.cor == ""){
Network.Instantiate(playerPrefabVerde, spawnPoint.position, spawnPoint.rotation, 1);
}
}
}
Player:
- Código:
using UnityEngine;
using System.Collections;
public class Player : MonoBehaviour {
public float velocidade = 10;
void Start () {
}
void Update () {
//verifica se o network view e meu, isso proteje que outros jogadores nao controlem o meu jogador
if(!GetComponent<NetworkView>().isMine)
return;
//condicoes basicas para a movimentacao
if(Input.GetKey(KeyCode.W)){
transform.Translate(new Vector3(0, 0, velocidade*Time.deltaTime));
}
if(Input.GetKey(KeyCode.A)){
transform.Translate(new Vector3(-velocidade*Time.deltaTime, 0, 0));
}
if(Input.GetKey(KeyCode.S)){
transform.Translate(new Vector3(0, 0, -velocidade*Time.deltaTime));
}
if(Input.GetKey(KeyCode.D)){
transform.Translate(new Vector3(velocidade*Time.deltaTime, 0, 0));
}
}
}
Crie um cubo, e um material, coloque a cor deste material verde, adicione rigidbody, networkView e o script player e salve o prefab (arrastando para a aba assets);
Faça a mesma coisa mais crie outro material vermelho;
Agora vai em File->Build Settings->Player Settings e marque a opção Run In Background;
Depois em Edit->Project Settings->Network e mude o Sendrate para 100;
Agora é só compilar e testar:
Tela de criar ou conectar em um servidor:
Tela do projetinho rolando :D :
Qualquer duvida, só perguntar, se eu estiver online respondo com maior prazer
Caso queira baixar o projeto, segue o link: https://mega.nz/#!3MMx1aLT!YHypMNN7glSKgSpskZu6P1h_NWDzpRqY2YyfCHHgiKk
Criado por Everaldo Júnior [Stipp]
Stipp- Avançado
- PONTOS : 3639
REPUTAÇÃO : 102
Idade : 25
Áreas de atuação : Programação: C#, VB.NET, PHP e outras.
Modelagem: Blender.
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
legal sera que podia fazer uma versao desse tutorial pra unity 4
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Na unity 4 o sistema é o quase o mesmo, você só tem que editar o script do Player:
Substituir isso:
Por isso:
Substituir isso:
- Código:
if(!GetComponent<NetworkView>().isMine)
return;
Por isso:
- Código:
if(!networkView.isMine)
return;
Stipp- Avançado
- PONTOS : 3639
REPUTAÇÃO : 102
Idade : 25
Áreas de atuação : Programação: C#, VB.NET, PHP e outras.
Modelagem: Blender.
Respeito as regras :
GustavoMaster- Avançado
- PONTOS : 3771
REPUTAÇÃO : 14
Idade : 21
Respeito as regras :
matheuseduarddo- Iniciante
- PONTOS : 3220
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Show de Bola...Baixei seu Projeto e Compilei...e no Teste com meu Filho no PC dele só aparece o Jogador que Entra (CLIENTE) quem é Servidor não Aparece....nao aparece o CUBO do Servidor...oq ta acontecendo será?
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
para mim não spawna o player
edugamer69- Avançado
- PONTOS : 3663
REPUTAÇÃO : 16
Idade : 27
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
edugamer69 escreveu:para mim não spawna o player
Resolvi da Seguinte Forma.....
Entrei no Jogo Criei um Servidor.....Minimizei o Jogo e Começei outro...ai entrei no Meu IP mesmo..ai deu Certo...apareceu os 3 Players...to pensando se tem como Compilar só um Servidor Externo! só nao sei Como!
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
tem como por pra isso funcionar com o asset do 3rd Person Controoler + fly mode ?
anizioNoob- Avançado
- PONTOS : 3476
REPUTAÇÃO : 17
Idade : 22
Áreas de atuação : Sei programar animators, e modelar no sketchup
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
mano modifiquei o script do player mas retirei o multiplayer e adicionei o sistema de pulo a ele
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(Rigidbody))]
public class Player : MonoBehaviour {
public float velocidade = 10;
public float AlturaDoPulo = 10;
void Start () {
}
void Update () {
//condicoes basicas para a movimentacao
if(Input.GetKey(KeyCode.W)){
transform.Translate(new Vector3(0, 0, velocidade*Time.deltaTime));
}
if(Input.GetKey(KeyCode.A)){
transform.Translate(new Vector3(-velocidade*Time.deltaTime, 0, 0));
}
if(Input.GetKey(KeyCode.S)){
transform.Translate(new Vector3(0, 0, -velocidade*Time.deltaTime));
}
if(Input.GetKey(KeyCode.D)){
transform.Translate(new Vector3(velocidade*Time.deltaTime, 0, 0));
}
if(Input.GetKey(KeyCode.Space)){
transform.Translate(new Vector3(0, AlturaDoPulo*Time.deltaTime,0));
}
}
}
anizioNoob- Avançado
- PONTOS : 3476
REPUTAÇÃO : 17
Idade : 22
Áreas de atuação : Sei programar animators, e modelar no sketchup
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Como configurar o server para ficar em um formato de Turnos , para aplicar em um card game?
Matheus Fiori- Iniciante
- PONTOS : 3302
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Ola tudo bem? oq recomenda usar para um jogo multiplayer no estilo mmorpg e fps...
Esse Network? , Photon ou UNET?
qual tem o melhor desempenho, é mais novo e é o melhor para se fazer em um jogo nesse estilo...
Esse Network? , Photon ou UNET?
qual tem o melhor desempenho, é mais novo e é o melhor para se fazer em um jogo nesse estilo...
dbzronaldo- Membro
- PONTOS : 3045
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Encontrei em um video um outro tipo de playercontroler que um cara fez.. totalmente diferente desse que tu mostrou..
qual deles recomenda usar? os dois funcionam.. eu gostei mais do modelo que vc fez.. fica mais facil de compreender.. mas qual deles é o mais indicado pra usar e aperfeiçoar?
qual deles recomenda usar? os dois funcionam.. eu gostei mais do modelo que vc fez.. fica mais facil de compreender.. mas qual deles é o mais indicado pra usar e aperfeiçoar?
- Código:
public class PlayerControlerT : MonoBehaviour {
public float speed;
private Vector3 directionInput;
private Rigidbody myRigidyBody;
void Start () {
myRigidyBody = GetComponent<Rigidbody> ();
}
void Update () {
directionInput.x = Input.GetAxis("Horizontal");
directionInput.z = Input.GetAxis("Vertical");
}
void FixedUpdate () {
if(directionInput != Vector3.zero){
directionInput.y = myRigidyBody.velocity.y;
myRigidyBody.velocity = directionInput * speed;
}else{
myRigidyBody.velocity = new Vector3 (0, myRigidyBody.velocity.y, 0);
}
}
}
dbzronaldo- Membro
- PONTOS : 3045
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Poderia incluir uma camera pra cada player, estou tentando fazer masi sem sucesso até o momento!
dbzronaldo- Membro
- PONTOS : 3045
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
dbzronaldo escreveu:Poderia incluir uma camera pra cada player, estou tentando fazer masi sem sucesso até o momento!
Criei um projeto de teste multiplayer, vou postar o link aqui talvez te ajuda, Tem o sistema de câmera para cada Player.
Obs : não é nada completo é apenas uns teste que estou fazendo.
https://mega.nz/#!ndpjHKzb!jyJ1p6K7Y-kEGNNagzrvtzuanJtNw_STrsnwl8VowzI
Cezar2016- Avançado
- PONTOS : 3104
REPUTAÇÃO : 28
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Obrigado Cezar... vou dar uma olhada no seu projeto! vlwww
dbzronaldo- Membro
- PONTOS : 3045
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Por nada, Qualquer duvida so falardbzronaldo escreveu:Obrigado Cezar... vou dar uma olhada no seu projeto! vlwww
Cezar2016- Avançado
- PONTOS : 3104
REPUTAÇÃO : 28
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Opa, e ae... como vai? acabei de analizar seu código Cezar e achei ele bem diferente dos que tenho costumado ver..
no caso você não instanciou o player, apenas marcou como true para ele aparecer... muito legal mesmo... estou estudando essa forma que fez.
só que pensando aqui, como terei varios lugares para meu player respawnar eu terei que instanciá-lo em uma posição randômica certo?
Veja se pode me ajudar nessa duvida:
Eu, estou achando que esse multiplayer do tutorial acima é uma versão antiga..
pois ele se reparar essa linha que instancia um objeto é diferente do que tenho costumado a ver, esse do tutorial é : Network e o do exemplo que a unity fornece é: Networkserver
outra coisa q percebi q quando uso o network.view a unit marca como deprecated.
Código do Tutorial:
Código fornecido no site da Unity.
no caso você não instanciou o player, apenas marcou como true para ele aparecer... muito legal mesmo... estou estudando essa forma que fez.
só que pensando aqui, como terei varios lugares para meu player respawnar eu terei que instanciá-lo em uma posição randômica certo?
Veja se pode me ajudar nessa duvida:
Eu, estou achando que esse multiplayer do tutorial acima é uma versão antiga..
pois ele se reparar essa linha que instancia um objeto é diferente do que tenho costumado a ver, esse do tutorial é : Network e o do exemplo que a unity fornece é: Networkserver
outra coisa q percebi q quando uso o network.view a unit marca como deprecated.
Código do Tutorial:
- Código:
Network.Instantiate(playerPrefabVerde, spawnPoint.position, spawnPoint.rotation, 1);
Código fornecido no site da Unity.
- Código:
var enemy = (GameObject)Instantiate(enemyPrefab, spawnPosition, spawnRotation);
NetworkServer.Spawn(enemy);
dbzronaldo- Membro
- PONTOS : 3045
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
uma e do network antigo do unity e outro e do novo mais nem tanto UNET
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
o mais recente é o NetworkServer? esse é do UNET?
dbzronaldo- Membro
- PONTOS : 3045
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Muito bom man! Eu não tenho conhecimento algum sobre Multiplayer, e nada melhor como começar do básico. Vou usar pra estudar. :bounce:
George Lucas Vieira- Avançado
- PONTOS : 3391
REPUTAÇÃO : 132
Idade : 21
Áreas de atuação : Programação, Modelagem e Animação.
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
dbzronaldo escreveu:Opa, e ae... como vai? acabei de analizar seu código Cezar e achei ele bem diferente dos que tenho costumado ver..
no caso você não instanciou o player, apenas marcou como true para ele aparecer... muito legal mesmo... estou estudando essa forma que fez.
só que pensando aqui, como terei varios lugares para meu player respawnar eu terei que instanciá-lo em uma posição randômica certo?
Veja se pode me ajudar nessa duvida:
Eu, estou achando que esse multiplayer do tutorial acima é uma versão antiga..
pois ele se reparar essa linha que instancia um objeto é diferente do que tenho costumado a ver, esse do tutorial é : Network e o do exemplo que a unity fornece é: Networkserver
outra coisa q percebi q quando uso o network.view a unit marca como deprecated.
Código do Tutorial:
- Código:
Network.Instantiate(playerPrefabVerde, spawnPoint.position, spawnPoint.rotation, 1);
Código fornecido no site da Unity.
- Código:
var enemy = (GameObject)Instantiate(enemyPrefab, spawnPosition, spawnRotation);
NetworkServer.Spawn(enemy);
Cara da uma olhada nesse asset, estou aprendendo muita coisa com ele.
TANKS! Networking Demo
https://www.assetstore.unity3d.com/en/#!/content/46213
Cezar2016- Avançado
- PONTOS : 3104
REPUTAÇÃO : 28
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Tenho dois players cada um é um prefab diferente e cada um possui uma camera, não está spawnando os players, será que é devido eu estar utilizando a versão 5.4?
lantreco63- Iniciante
- PONTOS : 2973
REPUTAÇÃO : 6
Idade : 33
Áreas de atuação : Modelagem, Programação, Design.
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Uau. Parece muito simples de se fazer. Isso roda numa build para android?
capitaoDisprosio- Iniciante
- PONTOS : 2938
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Isso serviria pra Hamachi? E caso não, poderia me indicar algum tutorial ou até mesmo fazer um tutorial em Multiplayer Hamachi?
perxgamertv- Iniciante
- PONTOS : 3493
REPUTAÇÃO : 0
Áreas de atuação : Aspirante a programador
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Quando criei um servidor, não spawnei. E no script Multiplayer controller há um espaço escrito 'spawn'.AndyShow escreveu:edugamer69 escreveu:para mim não spawna o player
Resolvi da Seguinte Forma.....
Entrei no Jogo Criei um Servidor.....Minimizei o Jogo e Começei outro...ai entrei no Meu IP mesmo..ai deu Certo...apareceu os 3 Players...to pensando se tem como Compilar só um Servidor Externo! só nao sei Como!
cody0033- Avançado
- PONTOS : 2922
REPUTAÇÃO : 12
Idade : 20
Áreas de atuação : Unity, desenho e animação.
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Muito legal,
vc pode adicionar o nome dos personagens em cima da cabeça
vc pode adicionar o nome dos personagens em cima da cabeça
als260502- Iniciante
- PONTOS : 3128
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
o meu nao funcionou da esse erro The connection request to (Aqui esta o meu ip) failed. Are you sure the server can be connected to?
Eduardoro39- Avançado
- PONTOS : 3257
REPUTAÇÃO : 11
Idade : 24
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Por que outro jogador não consegue ver as animações do meu personagem?
richerd- Avançado
- PONTOS : 3243
REPUTAÇÃO : 11
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
richerd escreveu:Por que outro jogador não consegue ver as animações do meu personagem?
Adicione um NetworkAnimator a ele e marque todas as opções(Se aparecer)
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Como arrumar que ta o player 1 e quando entra um novo player a camera do player 1 muda para o novo player.
richerd- Avançado
- PONTOS : 3243
REPUTAÇÃO : 11
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
richerd escreveu:Como arrumar que ta o player 1 e quando entra um novo player a camera do player 1 muda para o novo player.
Bom vc tem que verificar sé o player tem controle sobre essa entidade para ativar ou não a camera
https://docs.unity3d.com/ScriptReference/Networking.NetworkBehaviour-isLocalPlayer.html
https://docs.unity3d.com/ScriptReference/NetworkView-isMine.html
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
O sistema que ele mostrou é o UNET...dbzronaldo escreveu:Ola tudo bem? oq recomenda usar para um jogo multiplayer no estilo mmorpg e fps...
Esse Network? , Photon ou UNET?
qual tem o melhor desempenho, é mais novo e é o melhor para se fazer em um jogo nesse estilo...
Entre Photon e UNET eu recomendo o Photon, o UNET é todo bugado...
Agora, entre tudo o que existe, eu recomendo aprender a programar o seu próprio sistema com UDP. Antes de seguir para o UDP, também recomendo que aprenda TCP.
Não vai encontrar sistemas de network mais rápidos que o UDP direto, pq todos são derivados dele
mafipt- MembroAvançado
- PONTOS : 3624
REPUTAÇÃO : 54
Idade : 24
Áreas de atuação : C#, Java, PHP, JS, MySql, Multiplayer, Unity.
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Pra uma solução de terceiros eu ficaria com Photon (BOLT) que agora está free. Ele é infinitamente melhor que o Photon (PUN).
Unet é passado e já está morto e enterrado (Rimou ). Unet está sendo descontinuado, não existe mais suporte nem ninguém mais trabalhando nele do lado da Unity.
As bibliotecas do novo sistema de network estão parcialmente disponíveis no GitHub e nas versões 2019 da unity. mas eles não falam muito a respeito.
Minha opinião: Atualmente a melhor solução de terceiros é o Photon Bolt. Tem uma comunidade bem ativa e é utilizado em jogos como The Forest, Rust, Pantropy e etc. Atualmente estamos utilizando ele em nosso projeto.
O novo sistema de network da unity parece muito, muito promissor, mas pra quem viu Unet nascer e as promessas que eles fizeram no início, eu fico com o pé atrás.
Pra quem tem tempo, vale a pena escrever a própria solução de rede.
Unet é passado e já está morto e enterrado (Rimou ). Unet está sendo descontinuado, não existe mais suporte nem ninguém mais trabalhando nele do lado da Unity.
As bibliotecas do novo sistema de network estão parcialmente disponíveis no GitHub e nas versões 2019 da unity. mas eles não falam muito a respeito.
Minha opinião: Atualmente a melhor solução de terceiros é o Photon Bolt. Tem uma comunidade bem ativa e é utilizado em jogos como The Forest, Rust, Pantropy e etc. Atualmente estamos utilizando ele em nosso projeto.
O novo sistema de network da unity parece muito, muito promissor, mas pra quem viu Unet nascer e as promessas que eles fizeram no início, eu fico com o pé atrás.
Pra quem tem tempo, vale a pena escrever a própria solução de rede.
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
ja eu recomendaria nodejs,socketio ele tem TCP e UDP e é multiplataforma eu consegui fazer funcionar até no Webgl e joguei uma partida com meu colega que estava no androidmafipt escreveu:O sistema que ele mostrou é o UNET...dbzronaldo escreveu:Ola tudo bem? oq recomenda usar para um jogo multiplayer no estilo mmorpg e fps...
Esse Network? , Photon ou UNET?
qual tem o melhor desempenho, é mais novo e é o melhor para se fazer em um jogo nesse estilo...
Entre Photon e UNET eu recomendo o Photon, o UNET é todo bugado...
Agora, entre tudo o que existe, eu recomendo aprender a programar o seu próprio sistema com UDP. Antes de seguir para o UDP, também recomendo que aprenda TCP.
Não vai encontrar sistemas de network mais rápidos que o UDP direto, pq todos são derivados dele
Valakinhas- Avançado
- PONTOS : 3176
REPUTAÇÃO : 9
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Como saber qantos usuarios estao no servidor??
richerd- Avançado
- PONTOS : 3243
REPUTAÇÃO : 11
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Como fazer uma lista de servidores??
richerd- Avançado
- PONTOS : 3243
REPUTAÇÃO : 11
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Faça seu proprio topico que irei responder.richerd escreveu:Como fazer uma lista de servidores??
Diguinho- MembroAvançado
- PONTOS : 2589
REPUTAÇÃO : 15
Idade : 23
Áreas de atuação : Programação
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Oi eu sou novo aqui no fórum mas trabalho com unity algum tempo, e com programação também, até dou aulas de jogos digitais em duas escolas diferentes, em nível básicoMas vou tentar explicar da melhor forma possível o script do player controller original.No caso esse player controller é a forma que o seu jogador irá interagir com o game, os dois exemplos são bem básicos. Apenas a diferença que no seu exemplo aqui, ele separou a dinâmica da física dentro do FixedUpdate, o que é realmente recomendado. Mas para estudo e testes, meio que tanto faz até certo ponto.Já que vc tem dois scripts diferente a melhor maneira é: escreveu:
- Teste um e o outro e analise criteriosamente os resultados se possível em computadores diferentes. Uma vez que eu já vi dinamicas de update() rodarem diferentes em pcs diferentes.
dbzronaldoEncontrei em um video um outro tipo de playercontroler que um cara fez.. totalmente diferente desse que tu mostrou..
qual deles recomenda usar? os dois funcionam.. eu gostei mais do modelo que vc fez.. fica mais facil de compreender.. mas qual deles é o mais indicado pra usar e aperfeiçoar?
- Código:
public class PlayerControlerT : MonoBehaviour {
public float speed;
private Vector3 directionInput;
private Rigidbody myRigidyBody;
void Start () {
myRigidyBody = GetComponent<Rigidbody> ();
}
void Update () {
directionInput.x = Input.GetAxis("Horizontal");
directionInput.z = Input.GetAxis("Vertical");
}
void FixedUpdate () {
if(directionInput != Vector3.zero){
directionInput.y = myRigidyBody.velocity.y;
myRigidyBody.velocity = directionInput * speed;
}else{
myRigidyBody.velocity = new Vector3 (0, myRigidyBody.velocity.y, 0);
}
}
}
fabricadegame- Membro
- PONTOS : 2213
REPUTAÇÃO : 11
Respeito as regras :
Re: [TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Esse tutorial funciona também com jogos 2D, ou apenas 3D? Caso tenha um sobre multiplayer 2D, se alguém puder me informar, eu agradeceria!
Hohenheim- Iniciante
- PONTOS : 1632
REPUTAÇÃO : 1
Respeito as regras :
RGT2020- Iniciante
- PONTOS : 1342
REPUTAÇÃO : 1
Respeito as regras :
Tópicos semelhantes
» Algum tutorial sobre multiplayer simples é em portugues???
» [TUTORIAL] Criando jogo 2D no Unity!
» [TUTORIAL] Criando Menu Modular na Unity
» [TUTORIAL] Movimento simples para objetos filiados ao FPSController da Unity por código.
» [TUTORIAL] Sistema simples para VOLTAR NO TEMPO, Unity 3D
» [TUTORIAL] Criando jogo 2D no Unity!
» [TUTORIAL] Criando Menu Modular na Unity
» [TUTORIAL] Movimento simples para objetos filiados ao FPSController da Unity por código.
» [TUTORIAL] Sistema simples para VOLTAR NO TEMPO, Unity 3D
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos