Eu sempre quis que o meu computador fosse tão fácil de usar como o meu telefone, o meu desejo foi realizado pois eu já não consigo descobrir como usar o meu telefone.

Criando jogo MMORPG – Parte 3

Usando o Nome Escolhido.

Volte para a cena do jogo(cena que tem o personagem criada no 1º tutorial), de 2 cliques no script anda na Janela Project para edita-lo.

No inicio do script onde tem as variáveis declaradas, declare a variável nome da seguinte forma.

var nome:String;

Procure a função Start e dentro dela adicione os seguintes comandos:


//Usar o nome escolhido na tela de apresentação

nome = PlayerPrefs.GetString("nome_jogador");

No final do Script adicione estes comandos:


private var texto:String;

private var textoTemp:String;

private var falando = false;

function OnGUI ()

{

if(!falando)

textoTemp = GUI.TextArea(Rect(0,0,200,30),textoTemp);

var posicao  = Camera.main.WorldToScreenPoint (transform.position);

GUI.color = Color.red;

GUI.Label(new Rect(posicao.x-50,posicao.y-220,300,30),nome+texto);

}

function FixedUpdate(){

if(Input.GetKeyUp(KeyCode.Return) ){

if(textoTemp == ""){

falando = false;

}else{

fala();

}

}

}

function fala(){

falando = true;

texto ="-" + textoTemp;

textoTemp = "";

yield WaitForSeconds(5);

texto = "";

falando = false;

}

De Play para testar.

Aperte ENTER que aparecera uma caixa de texto no canto superior esquerdo, digite um texto lá e de ENTER para enviar uma mensagem para o jogo.

Para ajudar a entender, este é assim que o script anda deve ficar:

//****Variaveis****

//Velocidade de movimentaçãp

var vel:int;

//Componente de animação

var Animacao : Animation;

//Clipes de animação

var clipes:AnimationClip[];

var nome:String;

//Guarda se ja foi clicado

private var clicado:boolean = false;

private var seta : GameObject;

function Start(){

seta=GameObject.CreatePrimitive(PrimitiveType.Cube);

seta.transform.position = Vector3(0, 0, 0);

//Usar o nome escolhido na tela de apresentação
nome = PlayerPrefs.GetString("nome_jogador");

//seta.addComponent(Rigidbody);

}

//Função UPDATE

function Update() {

//if(!seta)return;

//se clicou com botão direito do mouse

if(Input.GetKeyDown(KeyCode.Mouse0))

{

//Cria um plano com a posição do personagem

var playerPlane = new Plane(Vector3.up, transform.position);

//Desenha um ponto entre o personagem e o local clicado

var ray = Camera.main.ScreenPointToRay (Input.mousePosition);

var hitdist = 0.0;

//Seta que foi clicado

clicado = true;

//Verifica se pode se mover e traça o caminho

if (playerPlane.Raycast (ray, hitdist)) {

//Pega pos clicada

var targetPoint = ray.GetPoint(hitdist);

//pega a rotação

targetPosition = ray.GetPoint(hitdist);

var targetRotation = Quaternion.LookRotation(targetPoint - transform.position);

//seta.rigidbody.velocity = Vector3.zero;

seta.transform.position = Vector3(targetPosition.x,targetPosition.y,targetPosition.z );

//Ajusta rotação do personagem

transform.rotation = targetRotation;

}

}

//Caso o personagem não esteja no ponto clicado ele anda até lá

//print((transform.position - seta.position).magnitude);

if((transform.position - seta.transform.position).magnitude > 2){

transform.Translate(Vector3.forward * ( Time.deltaTime * vel));

//seta animação dele andando

Animacao.clip = clipes[1];

Animacao.Play();

}else{

//seta animação dele parado

Animacao.clip = clipes[0];

Animacao.Play();

}

}

//*****tutorial 3
private var texto:String;
private var textoTemp:String;
private var falando = false;
function OnGUI ()
{
	if(!falando)
	textoTemp = GUI.TextArea(Rect(0,0,200,30),textoTemp);
	var posicao  = Camera.main.WorldToScreenPoint (transform.position);
	GUI.color = Color.red;
	GUI.Label(new Rect(posicao.x-50,posicao.y-220,300,30),nome+texto);

}

function FixedUpdate(){
	if(Input.GetKeyUp(KeyCode.Return) ){
		if(textoTemp == ""){
			falando = false;
		}else{
			fala();
		}
	}

}

function fala(){
	falando = true;
	texto ="-" + textoTemp;
	textoTemp = "";
	yield WaitForSeconds(5);
	texto = "";
	falando = false;
}

Na parte 4 iremos criar a conexão Multiplayer, ela já está pronta, apenas estou ajustando tudo, esta parte é mais complexa e estou tentando deixar bem explicada.

Até e Fiquem com Deus!!

31 Respostas

  1. vlw Emerson vc e de mais ^^

    05/09/2011 às 11:15

  2. vlw cara nuss vo testa agora mesmo ^^

    05/09/2011 às 12:12

  3. que legal mais uma coisa legal para o rpg aguardando o tutorial de adptaçao de modelos para unity abrax

    05/09/2011 às 12:18

  4. o emerson no inicio e pra voltar pra cena do 1 turtorial ou do 2 e qual e o script do personagen?

    05/09/2011 às 12:53

    • Desculpa o script se chama anda, ja arrumei isto no tutorial, é para voltar para a cena onde tem o personagem

      05/09/2011 às 13:38

  5. ata ja fiz eu quase coloco no errado mas conseguir graças a semelhança dos scripts vlw emerson e quando sai a proxima ?

    05/09/2011 às 14:23

    • Opa, espero que consiga colocar hj ainda, mas bem tarde pois tenho que dar aula hoje.

      05/09/2011 às 20:57

  6. parabéns ae,

    08/09/2011 às 3:15

  7. Emerson Quando vai Sair A Parte 4?

    12/09/2011 às 17:15

    • Opa, acredita que está pronto, falta só revisar e postar, mas ta dificil, rsrss

      13/09/2011 às 13:51

  8. Rafael

    estou esperando a parte 4 muto massa

    14/09/2011 às 14:29

  9. Jonas

    Emerson.. eu segui seus tutos, mt bons!!
    queria q vc tirasse duvida minha…:
    eu queria que quando eu clikasse em um lugar que é inassessível para o player ele n fosse até lá. como eu ageito isso?

    18/09/2011 às 0:43

  10. xShadoowgames

    aí cara , as suas videos aulas são boas mais vc podia fazer umm video tutorial do mmoprg completo do 1 ate o 4 e encinar como faz barra de life e como bater,vlw e continue crescendo

    15/10/2011 às 2:56

  11. lucas

    olá. o escript não esta funcionando não sei por que e depis que eu coloco esse script e do play fica travado.ajuda!

    08/11/2011 às 15:46

  12. Opa amigo eu não estou conseguindo abrir o script anda.

    18/11/2011 às 17:44

  13. [eu]

    Parabéns tutoriais muito bons
    Me ajudou muito !

    08/12/2011 às 14:57

  14. Zart

    Cara to gostando muito das suas aulas mas me ajuda ae eu boto o script tudo certin quando vo da play aparece esse erro: “Object reference not set to an instance of an object” . Me ajuda ae eu dei cntrl C cntrl V do site mas ainda ta dando o erro

    05/01/2012 às 16:39

    • Álvaro Marcelo

      cara não sou expert e nem entendo nada “nada mesmo” sobre programação de jogo, pra dizer bem a verdade este é o primeiro jogo que estou fazendo…
      mas no script você está dizendo que você está usando um nome diferente do que o que está no projeto “project”. tenta ver se você está renomeando tudo os objetos como está no tutorial…
      tipo assim cena1 como cena1, pois eu mudei minha cena1 para “mmorpg” e tive alguns problemas assim também.
      abraços espero ter ajudado

      18/01/2012 às 13:46

      • crisdmc

        Primeira vez que estou utilizando o unity3d, aqui deu o mesmo erro, e é na linha:

        textoTemp = GUI.TextArea(Rect(0,0,200,30),textoTemp);

        Vou ver se debugo e começo a aprender hehe.

        Abraço.

        28/03/2012 às 21:07

      • crisdmc

        static function TextArea (position : Rect, text : String, maxLength : int, style : GUIStyle) : String

        Os parâmetros estão corretos, se instanciar a string resolve o erro.

        Abraço.

        Ref: http://unity3d.com/support/documentation/ScriptReference/GUI.TextArea.html

        28/03/2012 às 21:17

  15. Koe manin , eu to desde ontem procurando coisa assim … , eu num sabia criar um personagem no blender , eu procurei na net Personagem para o Unity , mas num achei , ai me deu vontade de ver seu video ( dei joinha e sou mais 1 escrito no seu canal ) , eu aprendi só até agora como por personagem e fazer a camera seguir ( aprendi usa JavaScript ) , mas eu to com um probleminha aqui no seu blog ta diferente do youtube !

    aquie você não ensinou a animação , olha o meu personagem ja ta andando mas ele não se meche , ele fica com os braços levantados e com as pernas juntas … quando ele passa por morrinhos ele entra de baixo da terra e cotinua indo … tipo agora tu ta se perguntando , por que você ( eu ) não seguiu os passos como o video ?

    é por que eu clicko em meu ‘personagem’ (‘personagem’ = char) (em Hierarchy) ai click em Default Take ( em Insperctor ) , ai clicko em Default Take ( em Project ) , mas em Inspector não abre oque deveria abrir na como na sua video aula ‘-’

    aparecer assim :

    Inspector

    ↓ Defalt Take (Animation C
    Compressed [ ]

    Sample Rate 25

    Wrap Mode Defalt

    ↓ Bounds
    ↓ Center
    X 0
    Y 0
    Z 0

    ↓ Extent
    X 0
    Y 0
    Z 0

    ————————————- Me ajudaaaaaaaaaaaaaaaaaaaaaaa ————————

    03/02/2012 às 22:35

  16. emerson me ajuda o cara ali de cima tb perguntou eu coloco tudo certo e aparece isso: “Object reference not set to an instance of an object” . Me ajuda ae eu dei cntrl C cntrl V do site mas ainda ta dando o erro

    16/02/2012 às 19:40

  17. o emerson eu coloco ta tudo certo play envia a mensagem mas quando vo botar o nome nao da pq fica digiti seu nome aqui e nao da pra digitar o nome

    16/02/2012 às 19:53

  18. Valter

    como animo um personagem?????
    manda um video se puder para:valtersk8loku-skt@hotmail.com…
    manda se ñ posta ai no site porfavor!!!!!!!precizo animar uns personagens para meu game!!

    31/03/2012 às 1:35

  19. anderson

    ei cara eu nao acho o script anda, aki o script anda e uma animaçao me ajuda cara nao sei onde estaa

    01/04/2012 às 17:06

  20. como faço para baixar o boneco??????

    25/04/2012 às 13:06

  21. PARA CONSERTAR O ERRO VCS DEVEM COPIAR O ULTIMO EXEMPLO QUE ELE DEU (MAIS NAO SELECIONA E APERTE CTRL C) OLHE PARA O LADO QUE TERA UMAS OPÇOES DE COPIAR , IMPRIMIR.ETC CLIQUEM EM COPIAR AI DEPOIS VCS DEVEM COLAR POR CIMA DO SEU SCRIPT ANTIGO
    ABRAÇOS
    R-WEB’s.FULL

    23/05/2012 às 18:00

  22. Adoro seus tutoriais cara, mas empaquei nessa parte…
    Não estou usando o seu script “anda”, pois adaptei o script do “ThirdPersonMMOController” disponível na Asset Store para o meu projeto. Pretendo implementar essa função neste script, mas o script que uso está em C#… Teria como você mandar só essas funções novas para eu adaptar ao meu script? ou seria pedir demais?

    23/10/2012 às 20:42

    • deixa pra lá, consegui arrumar aqui, criei um script separado que serve somente para adicionar o nome escolhido, e inclusive transferi a caixa de texto para uma linha abaixo do nome, baseando-me no seu script, claro 😀

      23/10/2012 às 22:13

  23. Não dá pra enviar o texto,quando eu aperto enter ele passa para a proxima linha como eu resouvo

    26/11/2012 às 3:17

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s