[DÚVIDA]MULTIPLAYER Unet: Como sincronizar Variaveis(bool)
4 participantes
Página 1 de 1
[DÚVIDA]MULTIPLAYER Unet: Como sincronizar Variaveis(bool)
pesquisei mt mais ngm ensina algo simples de quando o host seta uma bool para true as dos clientes fica true,quando o cliente seta pra true o host ve true assim em diante
-basicamente eu tenho uma nave,quando um player aciona uma nave vem as fumaça, o som e talz.. quando alguém acionar o motor da nave os outros players teriam que ver aquele jogador com o propulsor ligado,
Código (porem foi o máximo que eu consegui e esta errado ;-; )
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using UnityEngine;
using UnityEngine.Networking;
public class SyncNav : NetworkBehaviour
{
public Andar scrip; // andar = aonde se ativa o propulsor
[SyncVar]
public bool propulsorAtivo = false;
void Start()
{
scrip = GameObject.FindGameObjectWithTag("GameController").GetComponent<Andar>();
}
void LateUpdate()
{
if (isLocalPlayer)
{
propulsorAtivo = scrip.EstaAndando; http://andar.EstaAndando se for = a true significa que o propulsor esta ligado
CmdNome(propulsorAtivo);
}
RpcNome(propulsorAtivo);
scrip.EstaAndando = propulsorAtivo;
}
[Command]
public void CmdNome(bool NovoNome)
{
propulsorAtivo = NovoNome;
}
[ClientRpc]
public void RpcNome(bool NovoNome)
{
propulsorAtivo = NovoNome;
}
}
este script fica localizado em cada nave ou fica somente em um local? no momento ele esta em cada nave que e instanciada .
o que o comando deveria fazer e quando eu aperta spaço ele ativa o propulsor(scrip.EstaAndando) porem quando eu faso isto acaba setando pra false ;-;
alguém me ajuda ;--;
-basicamente eu tenho uma nave,quando um player aciona uma nave vem as fumaça, o som e talz.. quando alguém acionar o motor da nave os outros players teriam que ver aquele jogador com o propulsor ligado,
Código (porem foi o máximo que eu consegui e esta errado ;-; )
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using UnityEngine;
using UnityEngine.Networking;
public class SyncNav : NetworkBehaviour
{
public Andar scrip; // andar = aonde se ativa o propulsor
[SyncVar]
public bool propulsorAtivo = false;
void Start()
{
scrip = GameObject.FindGameObjectWithTag("GameController").GetComponent<Andar>();
}
void LateUpdate()
{
if (isLocalPlayer)
{
propulsorAtivo = scrip.EstaAndando; http://andar.EstaAndando se for = a true significa que o propulsor esta ligado
CmdNome(propulsorAtivo);
}
RpcNome(propulsorAtivo);
scrip.EstaAndando = propulsorAtivo;
}
[Command]
public void CmdNome(bool NovoNome)
{
propulsorAtivo = NovoNome;
}
[ClientRpc]
public void RpcNome(bool NovoNome)
{
propulsorAtivo = NovoNome;
}
}
este script fica localizado em cada nave ou fica somente em um local? no momento ele esta em cada nave que e instanciada .
o que o comando deveria fazer e quando eu aperta spaço ele ativa o propulsor(scrip.EstaAndando) porem quando eu faso isto acaba setando pra false ;-;
alguém me ajuda ;--;
Extreme Craft- Avançado
- PONTOS : 3276
REPUTAÇÃO : 30
Idade : 23
Áreas de atuação : C# , Blender , Unity
Respeito as regras :
Re: [DÚVIDA]MULTIPLAYER Unet: Como sincronizar Variaveis(bool)
Siga esse tutorial, mas em vez de sincronizar a vida, sincronize o boolean:
https://unity3d.com/pt/learn/tutorials/topics/multiplayer-networking/networking-player-health
https://unity3d.com/pt/learn/tutorials/topics/multiplayer-networking/networking-player-health
Re: [DÚVIDA]MULTIPLAYER Unet: Como sincronizar Variaveis(bool)
1° Seu tópico está na área errada;
2° faça o que o amigo acima falou;
3° Sempre coloque seus scripts na caixa Script do fórum;
2° faça o que o amigo acima falou;
3° Sempre coloque seus scripts na caixa Script do fórum;
- Código:
//Coloque seus scripts aqui
Phph09- Profissional
- PONTOS : 3789
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: [DÚVIDA]MULTIPLAYER Unet: Como sincronizar Variaveis(bool)
Ontem estava com algumas dificuldades justamente a qual você está tendo agora.
Me corrijam se eu estiver errado, mas é o seguinte:
Ao invés de você chamar a função Rpc na linha 27 (fora da função Cmd), coloque-a dentro da função Cmd.
O código deverá ficar assim:
Me corrijam se eu estiver errado, mas é o seguinte:
Ao invés de você chamar a função Rpc na linha 27 (fora da função Cmd), coloque-a dentro da função Cmd.
O código deverá ficar assim:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using UnityEngine;
using UnityEngine.Networking;
public class SyncNav : NetworkBehaviour
{
public Andar scrip; // andar = aonde se ativa o propulsor
[SyncVar]
public bool propulsorAtivo = false;
void Start()
{
scrip = GameObject.FindGameObjectWithTag("GameController").GetComponent<Andar>();
}
void LateUpdate()
{
if (isLocalPlayer)
{
if(propulsorAtivo != scrip.EstaAndando)
{
CmdNome(scrip.EstaAndando);
}
}
}
[Command]
public void CmdNome(bool novoNome)
{
propulsorAtivo = novoNome;
RpcNome(propulsorAtivo);
}
[ClientRpc]
public void RpcNome(bool novoNome)
{
scrip.EstaAndando = novoNome;
}
}
Re: [DÚVIDA]MULTIPLAYER Unet: Como sincronizar Variaveis(bool)
Tópico movido para área correta, cuidado onde posta.
Tópicos semelhantes
» Bool ficar verdadeira no multiplayer em script de inimigo? (Unet)
» Como funciona as variaveis bool?
» [DÚVIDA]Problema com Multiplayer UNET
» como sincronizar rigidbody de outros objetos sem ser o player (Unet) multiplayer
» Alguem conhece uma sistema/asset de chat multiplayer Unet??
» Como funciona as variaveis bool?
» [DÚVIDA]Problema com Multiplayer UNET
» como sincronizar rigidbody de outros objetos sem ser o player (Unet) multiplayer
» Alguem conhece uma sistema/asset de chat multiplayer Unet??
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos