[TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
5 participantes
Página 1 de 1
[TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
Fiz esse tutoria de como criar um HUD multiplayer personalizável já que a que vem padrão da unity não é personalizável
e não fica muito legal nos games;
Então:
você crie um canvas com Um botão para criar o HOST, outro para conectar em um host , e um InputField para o usuario colocar o IP;
nesse inputfield você coloca como nome padrão : "localhost";
crie um objeto vazio e adicione nele um NetworkManagerHUD e deixe-o desativado e adicione nesse mesmo objeto esse script abaixo;
agora é só configurar os OnClick's dos botões nas respectivas voids e configurar as variaveis strings do script para os nomes em que você colocou ao criar esses objetos;
- Script:
- Testei e para mim está tudo funcional na unity 5.6.2
. Ele deve ter o nome: NetworkHUD- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
public class NetworkHUD : NetworkManager
{
public string NameInputFieldIP; // coloque o nome do input field em que o usuario escreverá o IP;
public string NameButtonStartHost; // coloque o nome do botão que você criou para criar o server;
public string NameButtonJoinGame; // coloque o nome do botão que você criou para conectar em um HOST já criado;
public string NameButtonDisconnect; // vai na sua cena de game online e crie um botão para desconectar o player do HOST e coloque o nome dele aqui;
public void StartupHost()//chame essa void no ONCLICK do botão que que cria o host(o mesmo que tu setou o nome no NameButtonStartHost)
{
SetPort();
NetworkManager.singleton.StartHost();
}
public void JoinGame()//chame essa void no botão que conecta no host já criado(o mesmo que tu setou o nome no NameButtonJoinGame)
{
SetIPAddress();
SetPort();
NetworkManager.singleton.StartClient();
}
void SetIPAddress()
{
string ipAddress = GameObject.Find(NameInputFieldIP).transform.Find("Text").GetComponent<Text>().text;
NetworkManager.singleton.networkAddress = ipAddress;
}
void SetPort()
{
NetworkManager.singleton.networkPort = 7777;
}
void OnLevelWasLoaded(int level)
{
if(level == 0)
{
SetupMenuSceneButton();
}else{
SetupOtherSceneButton();
}
}
void SetupMenuSceneButton()
{
GameObject.Find(NameButtonStartHost).GetComponent<Button>().onClick.RemoveAllListeners();
GameObject.Find(NameButtonStartHost).GetComponent<Button>().onClick.AddListener(StartupHost);
GameObject.Find(NameButtonJoinGame).GetComponent<Button>().onClick.RemoveAllListeners();
GameObject.Find(NameButtonJoinGame).GetComponent<Button>().onClick.AddListener(JoinGame);
}
void SetupOtherSceneButton()
{
GameObject.Find(NameButtonDisconnect).GetComponent<Button>().onClick.RemoveAllListeners();
GameObject.Find(NameButtonDisconnect).GetComponent<Button>().onClick.AddListener(NetworkManager.singleton.StopHost);
}
}
O basico é esse mas você pode ir personalizando a GUI depois obtendo um resultado melhor do que o HUD da unity;
- Explicando...:
- Basicamente;a void StartupGame cria o servera void JoinGame conecta no servere as outras voids pegam e transmitem informações que possibilitam o uso dessas duas
Última edição por Phph09 em Qui Nov 02, 2017 11:05 am, editado 1 vez(es)
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: [TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
Phph09 escreveu:Fiz esse tutoria de como criar um HUD multiplayer personalizável já que a que vem padrão da unity não é personalizávele não fica muito legal nos games;Então:você crie um canvas com Um botão para criar o HOST, outro para conectar em um host , e um InputField para o usuario colocar o IP;nesse inputfield você coloca como nome padrão : "localhost";crie um objeto vazio e adicione nele um NetworkManagerHUD e deixe-o desativado e adicione nesse mesmo objeto esse script abaixo;agora é só configurar os OnClick's dos botões nas respectivas voids e configurar as variaveis strings do script para os nomes em que você colocou ao criar esses objetos;//
- Script:
Testei e para mim está tudo funcional na unity 5.6.2
. Ele deve ter o nome: NetworkHUD
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
public class NetworkHUD : NetworkManager
{
public string NameInputFieldIP; // coloque o nome do input field em que o usuario escreverá o IP;
public string NameButtonStartHost; // coloque o nome do botão que você criou para criar o server;
public string NameButtonJoinGame; // coloque o nome do botão que você criou para conectar em um HOST já criado;
public string NameButtonDisconnect; // vai na sua cena de game online e crie um botão para desconectar o player do HOST e coloque o nome dele aqui;
public void StartupHost()//chame essa void no ONCLICK do botão que que cria o host(o mesmo que tu setou o nome no NameButtonStartHost)
{
SetPort();
NetworkManager.singleton.StartHost();
}
public void JoinGame()//chame essa void no botão que conecta no host já criado(o mesmo que tu setou o nome no NameButtonJoinGame)
{
SetIPAddress();
SetPort();
NetworkManager.singleton.StartClient();
}
void SetIPAddress()
{
string ipAddress = GameObject.Find(NameInputFieldIP).transform.Find("Text").GetComponent<Text>().text;
NetworkManager.singleton.networkAddress = ipAddress;
}
void SetPort()
{
NetworkManager.singleton.networkPort = 7777;
}
void OnLevelWasLoaded(int level)
{
if(level == 0)
{
SetupMenuSceneButton();
}else{
SetupOtherSceneButton();
}
}
void SetupMenuSceneButton()
{
GameObject.Find(NameButtonStartHost).GetComponent<Button>().onClick.RemoveAllListeners();
GameObject.Find(NameButtonStartHost).GetComponent<Button>().onClick.AddListener(StartupHost);
GameObject.Find(NameButtonJoinGame).GetComponent<Button>().onClick.RemoveAllListeners();
GameObject.Find(NameButtonJoinGame).GetComponent<Button>().onClick.AddListener(JoinGame);
}
void SetupOtherSceneButton()
{
GameObject.Find(NameButtonDisconnect).GetComponent<Button>().onClick.RemoveAllListeners();
GameObject.Find(NameButtonDisconnect).GetComponent<Button>().onClick.AddListener(NetworkManager.singleton.StopHost);
}
}O basico é esse mas você pode ir personalizando a GUI depois obtendo um resultado melhor do que o HUD da unity;
- Explicando...:
Basicamente;a void StartupGame cria o servera void JoinGame conecta no servere as outras voids pegam e transmitem informações que possibilitam o uso dessas duas
RECOMENDO POR UMAS IMAGENS PARA ILUSTRAR DO QUE ESTÁ SENDO RETRATADO. OU ATÉ MESMO SE POSSÍVEL UMA VIDEO AULA
mais parabens! pela iniciativa.. Tenho certeza que vai ajudar a muitos!
Re: [TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
qual site para hospedar imagens você recomenda melhor para por aqui no forum?
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: [TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
imgur.comPhph09 escreveu:qual site para hospedar imagens você recomenda melhor para por aqui no forum?
Fagner- Moderador
- PONTOS : 4442
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: [TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
Essa imagem acima é como ficou um HUD que eu fiz
Essa agora acima é da configuração na unity;
E essa agora acima é do HUD padrão da unity:
vlw fagner;
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: [TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
Estava usando quiesse script mais nao consigo linkar a scene para que o Player apareça la ele aparece no mesmo mapa de criar o serve?
Re: [TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
verifique se as duas cenas estão setadas no build settings!
pois ambas as senas cenas devem estar colocadas no build settings.
pois ambas as senas cenas devem estar colocadas no build settings.
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: [TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
Blz, nao estou conseguindo spawnar o Player em um local específico ele não cai em um terreno
Re: [TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
vai na sua cena online joga o player na cena, coloca ele na posição desejada e dá um Apply no prefab dele.
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: [TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
Criando um objeto tipo um spaw colocando nele o NetworkStartPosition ele vai instanciar onde voce quiser
Re: [TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
eu nao conseguir fazer direito,eu copiei o script e fiz o canvas certinho,mas eu nao consegui progredir..
eu fiquei perdido,vc poderia fazer um tutorial mais explicativo.
exemplo grava a tela do seu pc(esse programa e bom "oCam").
me ajudaria bastante e tbm muitos que estao acostumados com esse tipo de tutorial
DUVIDA! TEM COMO FAZER ISSO PARA ANDROID ,O JOGADOR CONECTA PELO bluetooth OU PELO WIFI?
eu fiquei perdido,vc poderia fazer um tutorial mais explicativo.
exemplo grava a tela do seu pc(esse programa e bom "oCam").
me ajudaria bastante e tbm muitos que estao acostumados com esse tipo de tutorial
DUVIDA! TEM COMO FAZER ISSO PARA ANDROID ,O JOGADOR CONECTA PELO bluetooth OU PELO WIFI?
Re: [TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
Meu pc quebrou. Mas quando logo quando consertar eu gravo um video.
Este tutorial é somente uma extensão do networkHUD da unity e funciona em LocalPlayer ou seja somente será conectado aqueles que possuir a MESMA versão do seu jogo e ainda estar conectados na MESMA internet.
Não sei se funciona com Bluetooth.
Este tutorial é somente uma extensão do networkHUD da unity e funciona em LocalPlayer ou seja somente será conectado aqueles que possuir a MESMA versão do seu jogo e ainda estar conectados na MESMA internet.
Não sei se funciona com Bluetooth.
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: [TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
hmmm deve dar pelo wifi pq tem muitos jogos que sao conectados assim.Phph09 escreveu:Meu pc quebrou. Mas quando logo quando consertar eu gravo um video.
Este tutorial é somente uma extensão do networkHUD da unity e funciona em LocalPlayer ou seja somente será conectado aqueles que possuir a MESMA versão do seu jogo e ainda estar conectados na MESMA internet.
Não sei se funciona com Bluetooth.
eu estou esperando obgd vlw!!
Re: [TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
TUTORIAL EM VÍDEO + SCRIPT PARA MOVIMENTAÇÃO SIMPLES DO PLAYER;
- VÍDEO:
- SOBRE O SCRIPT...:
script utilizado para movimentação:
[esse script não tem a checagem if(!islocalplayer) POR ISSO QUE AMBOS OS PLAYERS ERAM CONTROLADOS]...
- SCRIPT:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerBehaviour : MonoBehaviour {
public float speed = 10.0f;
private Vector3 directionInput;
private Rigidbody myRigidbody;
void Start () {
myRigidbody = GetComponent<Rigidbody>();
}
void Update () {
directionInput.x = Input.GetAxis("Horizontal");
directionInput.z = Input.GetAxis("Vertical");
}
void FixedUpdate()
{
if(directionInput != Vector3.zero)
{
directionInput.y = myRigidbody.velocity.y;
myRigidbody.velocity = directionInput * speed;
}else{
myRigidbody.velocity = new Vector3(0,myRigidbody.velocity.y,0);
}
}
}
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: [TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
Eae mano!
o que que você realmente quer fazer?
Pois esse Hud já é do Unet;
o que que você realmente quer fazer?
Pois esse Hud já é do Unet;
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: [TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
Estou fazendo um igual a esse maise global como esse Tutorial
Re: [TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
Pesquise por:
NetworkManager.singleton.
https://docs.unity3d.com/ScriptReference/Networking.NetworkManager-singleton.html
apartir dela você pode chamar as outras opções tipo:
https://docs.unity3d.com/ScriptReference/Networking.NetworkManager.html
nele temo MatchOn, MatchConnection, MaxConnections;
Etc;
Soh ir dando uma olhada nas opções;
NetworkManager.singleton.
https://docs.unity3d.com/ScriptReference/Networking.NetworkManager-singleton.html
apartir dela você pode chamar as outras opções tipo:
https://docs.unity3d.com/ScriptReference/Networking.NetworkManager.html
nele temo MatchOn, MatchConnection, MaxConnections;
Etc;
Soh ir dando uma olhada nas opções;
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: [TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
Callyde Jr escreveu:Estou fazendo um igual a esse maise global como esse Tutorial
Achei exatamente o que você queria:
https://docs.unity3d.com/ScriptReference/Networking.Match.NetworkMatch.html
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] Kit Para Criar seu Game Multiplayer em 5 Minutos
» (FPS MULTIPLAYER) COMO CRIAR UM MODO DE JOGO ?
» [TUTORIAL] COMO CRIAR UM JOGO DE TERROR
» [TUTORIAL] Como criar tiro no Unity usando Raycast
» [TUTORIAL] Como criar cénarios 2D muito rapido e facil.
» (FPS MULTIPLAYER) COMO CRIAR UM MODO DE JOGO ?
» [TUTORIAL] COMO CRIAR UM JOGO DE TERROR
» [TUTORIAL] Como criar tiro no Unity usando Raycast
» [TUTORIAL] Como criar cénarios 2D muito rapido e facil.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos