[AJUDA] Script c#
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[AJUDA] Script c#
Boa Glr
Estou quebrando a cabeça aqui com um bug em meu script.
Quando aperto o botão UI o script tem que ativar 3 componentes.
1 - Script Player Controle
2 Script PlayerShot
3 - GameObject
Mas com a Função Chamada pelo botão UI eu consigo ativar os 3 Componentes, porem o ultimo componente GameObject ativa apenas para mim, quem esta no servidor
não consegue ver que meu GameObject esta ativado. Isso usando a função chamada pelo botão.
Agora se eu chamar a função que ativa os componentes por um IEnumerator tudo ocorre bem. como o exemplo abaixo
Então se a função que ativa é chamada por ( private void RpcRespawn() ) os player no servidor não consegue ver que meu objeto foi ativado.
E se eu chamar a função que ativa por ( IEnumerator ) Tudo ocorre bem.
Alguém sabe porque isso acontece ? por que pra mim isso não tem sentindo...
Estou quebrando a cabeça aqui com um bug em meu script.
Quando aperto o botão UI o script tem que ativar 3 componentes.
1 - Script Player Controle
2 Script PlayerShot
3 - GameObject
Mas com a Função Chamada pelo botão UI eu consigo ativar os 3 Componentes, porem o ultimo componente GameObject ativa apenas para mim, quem esta no servidor
não consegue ver que meu GameObject esta ativado. Isso usando a função chamada pelo botão.
- Código:
//Função ativar/desativar componentes
private void SetarDef(bool active)
{
m_PlayerController.enabled = active; // Script alocado ao player
m_PlayerShot.enabled = active;// Script alocado ao player
m_Renders.SetActive(active); // GameObjeto com as Render
}
private void AtivarConponets()
{
SetarDef(true); // Ativar componente na função SetarDef()
}
//Função chamada por botão UI
private void RpcRespawn()
{
AtivarConponets(); // Chamar Função nome (AtivarConponets)
}
Agora se eu chamar a função que ativa os componentes por um IEnumerator tudo ocorre bem. como o exemplo abaixo
- Código:
//Função ativar/desativar componentes
private void SetarDef(bool active)
{
m_PlayerController.enabled = active; // Script alocado ao player
m_PlayerShot.enabled = active;// Script alocado ao player
m_Renders.SetActive(active); // GameObjeto com as Render
}
private void AtivarConponets()
{
SetarDef(true); // Ativar componente na função SetarDef()
}
IEnumerator ContRespawn()
{
yield return new WaitForSeconds(5f);
AtivarConponets();
}
Então se a função que ativa é chamada por ( private void RpcRespawn() ) os player no servidor não consegue ver que meu objeto foi ativado.
E se eu chamar a função que ativa por ( IEnumerator ) Tudo ocorre bem.
Alguém sabe porque isso acontece ? por que pra mim isso não tem sentindo...
Cezar2016- Avançado
- PONTOS : 3104
REPUTAÇÃO : 28
Respeito as regras :
Re: [AJUDA] Script c#
Isso não faz meio que o menor sentido...
Podem haver erros de renderização e ativação da ordem dos componentes...
Tenta colocar em vez de 5f, uns 0.1f, ve se o bug ocorre ou não.
Podem haver erros de renderização e ativação da ordem dos componentes...
Tenta colocar em vez de 5f, uns 0.1f, ve se o bug ocorre ou não.
Re: [AJUDA] Script c#
1f Ele funciona normal também Marcos.
Pelo IEnumerator ele consegue ativar normal o GameObject, e todos consegue ver.
Agora pela função ele ate ativa, mas os outros players no servidor não consegue ver que o GameObject esta ativo. Muito estranho.
Estou o dia todo tentando entender isso
Pelo IEnumerator ele consegue ativar normal o GameObject, e todos consegue ver.
Agora pela função ele ate ativa, mas os outros players no servidor não consegue ver que o GameObject esta ativo. Muito estranho.
Estou o dia todo tentando entender isso
Cezar2016- Avançado
- PONTOS : 3104
REPUTAÇÃO : 28
Respeito as regras :
Re: [AJUDA] Script c#
Para entender Melhor...
Função Chamada pelo botão UI, Ativa os 3 componente mas o ultimo componente que é o GameObject, Apenas ativa para o Player que apertou o botão.
função que ativa os componentes por um IEnumerator.
Quando o Player é destruído Depois de 5 Seg ativa o botão e ativa os componentes Funciona Tudo normal.
Função Chamada pelo botão UI, Ativa os 3 componente mas o ultimo componente que é o GameObject, Apenas ativa para o Player que apertou o botão.
função que ativa os componentes por um IEnumerator.
Quando o Player é destruído Depois de 5 Seg ativa o botão e ativa os componentes Funciona Tudo normal.
Cezar2016- Avançado
- PONTOS : 3104
REPUTAÇÃO : 28
Respeito as regras :
Re: [AJUDA] Script c#
Realmente, n faz sentido... teria que ver o projeto todo para saber melhor o que é, mas parece ser aquele tipo de bug que acontece quando algumas coisas são processadas fora de ordem...
Re: [AJUDA] Script c#
MarcosSchultz escreveu:Realmente, n faz sentido... teria que ver o projeto todo para saber melhor o que é, mas parece ser aquele tipo de bug que acontece quando algumas coisas são processadas fora de ordem...
Ok Marcos Obrigado cara, Mas vou começar a fazer tudo do zero de novo, pra ver se assim consigo resolver...
Cezar2016- Avançado
- PONTOS : 3104
REPUTAÇÃO : 28
Respeito as regras :
Tópicos semelhantes
» Ajuda com Script
» [AJUDA]Preciso de ajuda em um script relacionado ao vídeo Sistema de escolha de personagen
» [AJUDA]Quero Ajuda poque esse script so da erro!
» Ajuda com script
» ajuda com script
» [AJUDA]Preciso de ajuda em um script relacionado ao vídeo Sistema de escolha de personagen
» [AJUDA]Quero Ajuda poque esse script so da erro!
» Ajuda com script
» ajuda com script
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos