MultiplayerController especifico
2 participantes
Página 1 de 1
MultiplayerController especifico
Estou fazendo meu primeiro jogo e queria colocar ele online pra me segurar o server aqui em casa mesmo e tals... mas a questão é essa, não tenho muita habilidade com multiplayer e todos os tutoriais que vi de multiplayer deixaram a desejar. Meu projeto contem uma camera e uma player como de padrão, mas o problema é que minha camera não é filha do player, simplesmente ela so vai seguir ele (visão de cima e ele gira de acordo com o mouse, igual nightmare). não encontro forma de instanciar os dois, pois minhas tentativas a camera sempre era de todos os players. Então me ensine, me passe um codigo ou até mesmo uma aula. muito obrigado
WettySS- Iniciante
- PONTOS : 3037
REPUTAÇÃO : 0
Idade : 27
Respeito as regras :
Re: MultiplayerController especifico
Oque você está usando pra multiplayer? Photon, UNET... ?
Em UNET, eu não utlizo a câmera como filha do personagem pra evitar aquele efeito indesejável de ela balançar quando ele anda.
Eu tenho um gameObject anexado ao personagem que serve como referência pra câmera seguir.
Quando o player é instanciado, instancio uma câmera no mundo com um script anexado para seguir o ponto de referência no personagem suavemente. Sendo assim, tanto quando eu ando com o player, quanto quando eu giro ele, a câmera segue suavemente.
Pra falar a verdade, independe se você está usando Photon, Unet ou qualquer outra coisa.
O Script que eu utilizo anexado a câmera que é instanciada, á com zoom no scrool do mouse ( Lembrando que estou usando UNET, você vai ter que adaptar às tuas necessidades ):
E no Player uso algo como...
Em UNET, eu não utlizo a câmera como filha do personagem pra evitar aquele efeito indesejável de ela balançar quando ele anda.
Eu tenho um gameObject anexado ao personagem que serve como referência pra câmera seguir.
Quando o player é instanciado, instancio uma câmera no mundo com um script anexado para seguir o ponto de referência no personagem suavemente. Sendo assim, tanto quando eu ando com o player, quanto quando eu giro ele, a câmera segue suavemente.
Pra falar a verdade, independe se você está usando Photon, Unet ou qualquer outra coisa.
O Script que eu utilizo anexado a câmera que é instanciada, á com zoom no scrool do mouse ( Lembrando que estou usando UNET, você vai ter que adaptar às tuas necessidades ):
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
public class MoveCameraJogador : NetworkBehaviour {
Camera CameraJogador;
/* Esta variável está estáticas porque seto ela do player depois que instancio. */
public static Transform Alvo;
Transform trans;
public float Suavizacao = 5.0f;
public float distance = 60;
public float sensitivityDistance = 50;
public float damping = 5;
public float minFOV = 40;
public float maxFOV = 90;
void MoveCamera(){
trans.transform.position = Vector3.Slerp(transform.position, Alvo.position, Time.deltaTime * Suavizacao);
trans.transform.rotation = Quaternion.Lerp(transform.rotation, Alvo.rotation, Time.deltaTime * Suavizacao);
}
void ZoomScrool(){
distance -= Input.GetAxis("Mouse ScrollWheel") * sensitivityDistance;
distance = Mathf.Clamp(distance, minFOV, maxFOV);
CameraJogador.fieldOfView = Mathf.Lerp(CameraJogador.fieldOfView, distance, Time.deltaTime * damping);
}
void Awake () {
trans = transform;
CameraJogador = GetComponent<Camera> ();
CameraJogador.gameObject.SetActive(true);
distance = CameraJogador.fieldOfView;
}
void LateUpdate(){
MoveCamera ();
ZoomScrool ();
if (!isLocalPlayer) {
return;
} else {
if (Input.GetMouseButton (2)) {Cursor.visible = false;} else {Cursor.visible = true;}
}
}
void Update () {
}
}
E no Player uso algo como...
- Código:
void Start () {
//Instancia a câmera do jogador e habilita o Script para que ela siga o GameObject "PosCamera" filho do Player.
if (!isLocalPlayer) {
return;
}
GameObject CameraJogador = Instantiate (CameraPlayer, transform.position, transform.rotation)as GameObject;
MoveCameraJogador.Alvo = transform.FindChild ("PosCamera").transform;
CameraJogador.GetComponent<MoveCameraJogador> ().enabled = true;
}
Re: MultiplayerController especifico
Deixa eu ver se eu entendi, então não ta conectando por que eu não uso nem o phonton e nem o UNET? gostei da ideia de instanciar a camera pelo player vlw, ela não é filha do player porque a visão tem que ser de cima pra baixo e não fica legal ela filha dele, ainda mais quando ele gira apartir do mouse "LookAt". kkkk
vou ver qual dos dois eu uso, vou ver alguns tutoriais depois decido qual o que eu vou usar.
qual você me sugeria?
vou ver qual dos dois eu uso, vou ver alguns tutoriais depois decido qual o que eu vou usar.
qual você me sugeria?
WettySS- Iniciante
- PONTOS : 3037
REPUTAÇÃO : 0
Idade : 27
Respeito as regras :
Re: MultiplayerController especifico
WettySS escreveu:Deixa eu ver se eu entendi, então não ta conectando por que eu não uso nem o phonton e nem o UNET? gostei da ideia de instanciar a camera pelo player vlw, ela não é filha do player porque a visão tem que ser de cima pra baixo e não fica legal ela filha dele, ainda mais quando ele gira apartir do mouse "LookAt". kkkk
vou ver qual dos dois eu uso, vou ver alguns tutoriais depois decido qual o que eu vou usar.
qual você me sugeria?
Foi mal fera, eu é quem não entendi a tua pergunta no primeiro momento :oops: .
Eu achei que você queria saber como fazer a câmera seguir o player.
Em multiplayer, quando você quer que algo aconteça só com o player em questão, se verifica se ele é o localplayer. Por isso esse trecho de código nos meus scripts:
- Código:
if (!isLocalPlayer) {
return;
}
Também poderia ser usado assim:
- Código:
if (!isLocalPlayer) {
return;
}else{
//Minha ação aqui....
}
Isso no Unet, no Photon se não me falha a memória você usa isMine pra verificação.
O Photon é muito simples de se trabalhar, mas eu particularmente prefiro UNET. Eu faço meus jogos baseados em servidor autoritário, então dificilmente alguém vai conseguir utilizar um speedhack, teleport ou qualquer outro tipo de trapaça, já que o jogo é "Server Side" e o servidor é quem diz aos players qual a posição deles, estado e afins. Já com o photon, eu não tenho certeza se dá pra trabalhar com isso. E além do mais, eu não dependo da licença deles e posso criar um servidor dedicado e gereciável por console e tudo mais.
Mas depende do tipo de jogo que você vai fazer: Baseado em salas, servidor dedicado....
Re: MultiplayerController especifico
vlw cara. você me ajudou bastante, muito grato. Eu morria e não sabia que tinha que usar esses scripts de network, ja vi muito tutorial usando "NetworkBehaviour", "!isLocalPlayer", mas sempre dava errado. vlw, agora vou tentar aprender usar um desses ae.
vai ser um shooter multiplayer e quero usar so um server master. Para esse tipo de jogo o melhor é o photon?
vai ser um shooter multiplayer e quero usar so um server master. Para esse tipo de jogo o melhor é o photon?
WettySS- Iniciante
- PONTOS : 3037
REPUTAÇÃO : 0
Idade : 27
Respeito as regras :
Re: MultiplayerController especifico
Foi mal pela mensagem repetida bugou aqui. Tem como você indicar alguem que ensine a mexer com algum deles?
WettySS- Iniciante
- PONTOS : 3037
REPUTAÇÃO : 0
Idade : 27
Respeito as regras :
Re: MultiplayerController especifico
Se for baseado em salas o photon é mais simples de se utilizar, não que não seja com UNET. Eu só não curto o photon por você precisar da API deles pra fazer o teu servidor, e a licença gratuita te dá direito a somente 100 Users.
Se for usar o Photon ou Unet ou qualquer outra coisa pense sempre em fazer um servidor autoritário, muita gente não pensa nisso.
Dá mais trabalho, mas fica muito mais seguro. E se você fizer um jogo dando autoridade pro player sobre o servidor, prepare-se pra comprar um anticheater muito bom ou pra reescrever seu jogo no futuro.
Se for usar o Photon ou Unet ou qualquer outra coisa pense sempre em fazer um servidor autoritário, muita gente não pensa nisso.
Dá mais trabalho, mas fica muito mais seguro. E se você fizer um jogo dando autoridade pro player sobre o servidor, prepare-se pra comprar um anticheater muito bom ou pra reescrever seu jogo no futuro.
Re: MultiplayerController especifico
Mano, muito obrigado! vlw pelas dicas!
WettySS- Iniciante
- PONTOS : 3037
REPUTAÇÃO : 0
Idade : 27
Respeito as regras :
Tópicos semelhantes
» Drag and drop em um rect específico da UI
» Como Add Fog em lugar no mundo específico
» Pegar material especifico do objeto
» Como definir distãncia num eixo especifico?
» Como parar uma animação em um frame especifico?
» Como Add Fog em lugar no mundo específico
» Pegar material especifico do objeto
» Como definir distãncia num eixo especifico?
» Como parar uma animação em um frame especifico?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos