SlideShare una empresa de Scribd logo
1 de 12
Interacción con objetos
Tutorial para versión 4 (Unity4)
Taller de videojuegos – Universidad de La Frontera
Comunicación entre objetos
En el siguiente ejemplo se demostrara como crear una
interacción entre el jugador y objetos próximos.
En esta ocasión utilizaremos dos elementos: un First
Person Controller y un objeto cualquiera, ya sea una
esfera, cubo, capsula, etc.
La idea consiste en generar una comunicación entre
estos dos elementos, por lo que es necesario utilizar
dos Scripts.
Interacción con objeto
var golpe : int = 1;
var distancia : float;
var distanciaMax : float = 2.5;
function Start () {
}
function Update () {
if(Input.GetButtonDown("Fire1")){
var hit : RaycastHit;
if (Physics.Raycast(transform.position,
transform.TransformDirection(Vector3.forward), hit)){
distancia = hit.distance;
if(distancia < distanciaMax){
hit.transform.SendMessage("golpiar", golpe,
SendMessageOptions.DontRequireReceiver);
}
}
}
}
Cada vez que el jugador presione el botón Fire1 se
realizara una medición de distancia a lo largo del
eje x (vector3) entre el jugador y el primer objeto
presente a lo largo del eje.
Envia mensaje
dependiendo un rango de
distancia entre el jugador y
el objeto.
Script del jugador
Acción del objeto
El segundo script se ubicara en el objeto. Como
parámetro principal cada objeto debe tener un
indicador de vida que será equivalente al daño
necesario que se le debe infringir antes de destruirlo.
Como en este el objeto debe desaparecer al momento
de activarlo, se le ha asignado un valor mínimo de vida.
Acción del objeto
var vida : int = 1;
var nombreObjeto : String = null;
var jugador : GameObject = null;
var alerta : GameObject = null;
function Update () {
if(vida <= 0){
destruir();
}
}
function golpiar(golpe : int){
vida -= golpe;
}
function destruir(){
Destroy(gameObject);
alerta.GetComponent(GUIText).text = "Has obtenido "+nombreObjeto;
alerta.animation.Play("GUI-textoAlert");
}
La función golpear es la función que se activara
cuando se indique el objeto y se encargara de
restar vida al objeto.
el objeto se destruirá cuando valor de vida
sea menor o igual a 0.
Script del Objeto
Configuración de los elementos
Para el ejemplo son necesarios 3 elementos.
Utilizaremos un First Person Controller y un objeto
cylinder que simularan el jugador y la linterna
respectivamente. Se deben asignar los scripts del
ejemplo anterior a estos dos elementos y con los
siguientes parámetros:
Configuración de los elementos
Jugador
El script debe estar situado coomo
un componente de la cámara.
Configuración de los elementos
Linterna
El tercer elemento será crear un
SpotLight como hijo de la cámara en
el Jugador. Para simular ser una
linterna se debe añadir la siguiente
configuración
Creación de Inventario
var linterna = false;
var objetoLinterna : GameObject = null;
private var estadoLinterna = false;
function Start () {
objetoLinterna.light.enabled = estadoLinterna;
}
function Update () {
if(Input.GetButtonDown("Fire2")){
if(estadoLinterna == false){
encenderLinterna(true);
}else{
encenderLinterna(false);
}
}
}
La variable objetoLinterna debe
referenciar al spotlight que se creó para
el jugador.
Instrucciones para encender y
apagar la linterna.
function encenderLinterna(resp){
if(linterna == true && objetoLinterna != null){
objetoLinterna.light.enabled = resp;
estadoLinterna = resp;
}
}
function setLinterna(resp){
linterna = resp;
}
Creación de Inventario
Instrucciones para encender y
apagar la linterna.
A este script se le pueden agregar más elementos
solo agregando más variables como linterna y su
respectiva función setLinterna.
Agregar objeto al inventario
var vida : int = 1;
var nombreObjeto : String = null;
var jugador : GameObject = null;
var alerta : GameObject = null;
function Update () {
if(vida <= 0){
destruir();
}
}
function golpiar(golpe : int){
vida -= golpe;
}
function destruir(){
Destroy(gameObject);
alerta.GetComponent(GUIText).text = "Has obtenido "+nombreObjeto;
alerta.animation.Play("GUI-textoAlert");
jugador.SendMessage("setLinterna”,
true,SendMessageOptions.DontRequireReceiver);
}
En la función destruir se ha agregado una última
línea de código que envía al jugador el mensaje de
que ejecute la función setLinterna con el
parámetro true.
Script del Objeto
Interacción con objetos
Tutorial para versión 4 (Unity4)
Taller de videojuegos – Universidad de La Frontera

Más contenido relacionado

La actualidad más candente

Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
Christian Perone
 
Arrays and structures
Arrays and structuresArrays and structures
Arrays and structures
Mohd Arif
 
Aula 1 linguagem html (1)
Aula 1   linguagem html (1)Aula 1   linguagem html (1)
Aula 1 linguagem html (1)
Kaoru Hatake
 

La actualidad más candente (20)

C# Events
C# EventsC# Events
C# Events
 
Operator overloading
Operator overloadingOperator overloading
Operator overloading
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controle
 
Chapter 02 functions -class xii
Chapter 02   functions -class xiiChapter 02   functions -class xii
Chapter 02 functions -class xii
 
CBSE - Class 12 - Ch -5 -File Handling , access mode,CSV , Binary file
CBSE - Class 12 - Ch -5 -File Handling , access mode,CSV , Binary fileCBSE - Class 12 - Ch -5 -File Handling , access mode,CSV , Binary file
CBSE - Class 12 - Ch -5 -File Handling , access mode,CSV , Binary file
 
Python - Introdução Básica
Python - Introdução BásicaPython - Introdução Básica
Python - Introdução Básica
 
POO - 14 - Vetores
POO - 14 - VetoresPOO - 14 - Vetores
POO - 14 - Vetores
 
Functions in python
Functions in python Functions in python
Functions in python
 
Arrays and structures
Arrays and structuresArrays and structures
Arrays and structures
 
Python revision tour i
Python revision tour iPython revision tour i
Python revision tour i
 
Aula 1 linguagem html (1)
Aula 1   linguagem html (1)Aula 1   linguagem html (1)
Aula 1 linguagem html (1)
 
Inheritance, friend function, virtual function, polymorphism
Inheritance, friend function, virtual function, polymorphismInheritance, friend function, virtual function, polymorphism
Inheritance, friend function, virtual function, polymorphism
 
Typedef
TypedefTypedef
Typedef
 
Exception handling in c programming
Exception handling in c programmingException handling in c programming
Exception handling in c programming
 
File in C language
File in C languageFile in C language
File in C language
 
Uploading a file with php
Uploading a file with phpUploading a file with php
Uploading a file with php
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
SQL - Banco de Dados Biblioteca
SQL - Banco de Dados BibliotecaSQL - Banco de Dados Biblioteca
SQL - Banco de Dados Biblioteca
 
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysEstrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
 

Similar a Tutorial unity interaccion con objetos

Evento del Mouse
Evento del MouseEvento del Mouse
Evento del Mouse
internet
 
Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3
Harolsmr1103
 
Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3
Harolsmr1103
 
Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3
Harolsmr1103
 
Natalia gonzález villamil (1)
Natalia gonzález villamil (1)Natalia gonzález villamil (1)
Natalia gonzález villamil (1)
nata2381075
 

Similar a Tutorial unity interaccion con objetos (20)

Presentacion1410
Presentacion1410Presentacion1410
Presentacion1410
 
Presentacion1410
Presentacion1410Presentacion1410
Presentacion1410
 
Tutorial unity3d 1_español
Tutorial unity3d 1_españolTutorial unity3d 1_español
Tutorial unity3d 1_español
 
Codigo Explicado Rompe Bloques.docx
Codigo Explicado Rompe Bloques.docxCodigo Explicado Rompe Bloques.docx
Codigo Explicado Rompe Bloques.docx
 
Manejo De Eventos En Cs3
Manejo De Eventos En Cs3Manejo De Eventos En Cs3
Manejo De Eventos En Cs3
 
Event Programing & Driven Mediator Pattern
Event Programing & Driven Mediator PatternEvent Programing & Driven Mediator Pattern
Event Programing & Driven Mediator Pattern
 
Presentacion420
Presentacion420Presentacion420
Presentacion420
 
Presentacion420
Presentacion420Presentacion420
Presentacion420
 
Mingo santiago
Mingo santiagoMingo santiago
Mingo santiago
 
Gruia juego
Gruia juegoGruia juego
Gruia juego
 
Evento Del Mouse
Evento Del MouseEvento Del Mouse
Evento Del Mouse
 
Evento del Mouse
Evento del MouseEvento del Mouse
Evento del Mouse
 
Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3
 
Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3
 
Que es action scrip 3
Que es  action scrip 3Que es  action scrip 3
Que es action scrip 3
 
Game Maker Primera parte
Game Maker Primera parteGame Maker Primera parte
Game Maker Primera parte
 
Xna game studio presentación 02
Xna game studio   presentación 02Xna game studio   presentación 02
Xna game studio presentación 02
 
Natalia gonzález villamil (1)
Natalia gonzález villamil (1)Natalia gonzález villamil (1)
Natalia gonzález villamil (1)
 
99
9999
99
 
Gamemakeruno
GamemakerunoGamemakeruno
Gamemakeruno
 

Último

2021-MAYO-CAP-RL_SEGURIDAD-PARA-DELEGADOS_08.05.21-ENVIADO.pdf
2021-MAYO-CAP-RL_SEGURIDAD-PARA-DELEGADOS_08.05.21-ENVIADO.pdf2021-MAYO-CAP-RL_SEGURIDAD-PARA-DELEGADOS_08.05.21-ENVIADO.pdf
2021-MAYO-CAP-RL_SEGURIDAD-PARA-DELEGADOS_08.05.21-ENVIADO.pdf
Adolfo Acero Aguilar
 

Último (20)

Presentación de proyecto y resumen de conceptos (3).pdf
Presentación de proyecto y resumen de conceptos (3).pdfPresentación de proyecto y resumen de conceptos (3).pdf
Presentación de proyecto y resumen de conceptos (3).pdf
 
368165951-Procedimiento-de-Gruas-e-Izaje.doc
368165951-Procedimiento-de-Gruas-e-Izaje.doc368165951-Procedimiento-de-Gruas-e-Izaje.doc
368165951-Procedimiento-de-Gruas-e-Izaje.doc
 
Circuitos_basicos_de_neumatica miquel carulla .pdf
Circuitos_basicos_de_neumatica  miquel carulla .pdfCircuitos_basicos_de_neumatica  miquel carulla .pdf
Circuitos_basicos_de_neumatica miquel carulla .pdf
 
REGLA DE PROBABILIDADES Y REGLA DE BAYES.pptx
REGLA DE PROBABILIDADES  Y REGLA DE BAYES.pptxREGLA DE PROBABILIDADES  Y REGLA DE BAYES.pptx
REGLA DE PROBABILIDADES Y REGLA DE BAYES.pptx
 
ESPECIFICACIONES TECNICAS MURO DE CONTENCION.docx
ESPECIFICACIONES TECNICAS MURO DE CONTENCION.docxESPECIFICACIONES TECNICAS MURO DE CONTENCION.docx
ESPECIFICACIONES TECNICAS MURO DE CONTENCION.docx
 
2021-MAYO-CAP-RL_SEGURIDAD-PARA-DELEGADOS_08.05.21-ENVIADO.pdf
2021-MAYO-CAP-RL_SEGURIDAD-PARA-DELEGADOS_08.05.21-ENVIADO.pdf2021-MAYO-CAP-RL_SEGURIDAD-PARA-DELEGADOS_08.05.21-ENVIADO.pdf
2021-MAYO-CAP-RL_SEGURIDAD-PARA-DELEGADOS_08.05.21-ENVIADO.pdf
 
Convocatoria de Becas Caja de Ingenieros_UOC 2024-25
Convocatoria de Becas Caja de Ingenieros_UOC 2024-25Convocatoria de Becas Caja de Ingenieros_UOC 2024-25
Convocatoria de Becas Caja de Ingenieros_UOC 2024-25
 
INVESTIGACION DE ACCIDENTE EN REFINERIA.pptx
INVESTIGACION DE ACCIDENTE EN REFINERIA.pptxINVESTIGACION DE ACCIDENTE EN REFINERIA.pptx
INVESTIGACION DE ACCIDENTE EN REFINERIA.pptx
 
Trabajo de cristalografia. año 2024 mes de mayo
Trabajo de cristalografia. año 2024 mes de mayoTrabajo de cristalografia. año 2024 mes de mayo
Trabajo de cristalografia. año 2024 mes de mayo
 
TERRENO DE FUNDACION - CURSO DE PAVIMENTOS
TERRENO DE FUNDACION - CURSO DE PAVIMENTOSTERRENO DE FUNDACION - CURSO DE PAVIMENTOS
TERRENO DE FUNDACION - CURSO DE PAVIMENTOS
 
METRADOS EN OBRAS DE PAVIMENTACION- ACTUALIZADA.pptx
METRADOS EN OBRAS DE PAVIMENTACION- ACTUALIZADA.pptxMETRADOS EN OBRAS DE PAVIMENTACION- ACTUALIZADA.pptx
METRADOS EN OBRAS DE PAVIMENTACION- ACTUALIZADA.pptx
 
Carbohidratos utilizados en la industria alimentaria.pdf
Carbohidratos utilizados en la industria alimentaria.pdfCarbohidratos utilizados en la industria alimentaria.pdf
Carbohidratos utilizados en la industria alimentaria.pdf
 
Embriologia-2 en ganado bovino lechero .ppt
Embriologia-2 en ganado bovino lechero .pptEmbriologia-2 en ganado bovino lechero .ppt
Embriologia-2 en ganado bovino lechero .ppt
 
Ciclo de Refrigeracion aplicado a ToniCorp.pptx
Ciclo de Refrigeracion aplicado a ToniCorp.pptxCiclo de Refrigeracion aplicado a ToniCorp.pptx
Ciclo de Refrigeracion aplicado a ToniCorp.pptx
 
Diagramas de Tiempo.pptpara electronica aplicada
Diagramas de Tiempo.pptpara electronica aplicadaDiagramas de Tiempo.pptpara electronica aplicada
Diagramas de Tiempo.pptpara electronica aplicada
 
CLASES DE ARRANQUE DE UN MOTOR ELECTRICO.pptx
CLASES DE ARRANQUE DE UN MOTOR ELECTRICO.pptxCLASES DE ARRANQUE DE UN MOTOR ELECTRICO.pptx
CLASES DE ARRANQUE DE UN MOTOR ELECTRICO.pptx
 
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdf
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdfESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdf
ESFUERZO EN VIGAS SESIÓN 5 PROBLEMA RESUELTOS.pdf
 
TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOS
TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOSTEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOS
TEST ESPACIAL CONTEO DE CUBOS y TEST DE MOSAICOS
 
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPO
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPODIFERENCIA DE COMPRESION Y TENSION EN UN CUERPO
DIFERENCIA DE COMPRESION Y TENSION EN UN CUERPO
 
PRACTICAS_DE_AUTOMATIZACION_industrial (1).pdf
PRACTICAS_DE_AUTOMATIZACION_industrial (1).pdfPRACTICAS_DE_AUTOMATIZACION_industrial (1).pdf
PRACTICAS_DE_AUTOMATIZACION_industrial (1).pdf
 

Tutorial unity interaccion con objetos

  • 1. Interacción con objetos Tutorial para versión 4 (Unity4) Taller de videojuegos – Universidad de La Frontera
  • 2. Comunicación entre objetos En el siguiente ejemplo se demostrara como crear una interacción entre el jugador y objetos próximos. En esta ocasión utilizaremos dos elementos: un First Person Controller y un objeto cualquiera, ya sea una esfera, cubo, capsula, etc. La idea consiste en generar una comunicación entre estos dos elementos, por lo que es necesario utilizar dos Scripts.
  • 3. Interacción con objeto var golpe : int = 1; var distancia : float; var distanciaMax : float = 2.5; function Start () { } function Update () { if(Input.GetButtonDown("Fire1")){ var hit : RaycastHit; if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), hit)){ distancia = hit.distance; if(distancia < distanciaMax){ hit.transform.SendMessage("golpiar", golpe, SendMessageOptions.DontRequireReceiver); } } } } Cada vez que el jugador presione el botón Fire1 se realizara una medición de distancia a lo largo del eje x (vector3) entre el jugador y el primer objeto presente a lo largo del eje. Envia mensaje dependiendo un rango de distancia entre el jugador y el objeto. Script del jugador
  • 4. Acción del objeto El segundo script se ubicara en el objeto. Como parámetro principal cada objeto debe tener un indicador de vida que será equivalente al daño necesario que se le debe infringir antes de destruirlo. Como en este el objeto debe desaparecer al momento de activarlo, se le ha asignado un valor mínimo de vida.
  • 5. Acción del objeto var vida : int = 1; var nombreObjeto : String = null; var jugador : GameObject = null; var alerta : GameObject = null; function Update () { if(vida <= 0){ destruir(); } } function golpiar(golpe : int){ vida -= golpe; } function destruir(){ Destroy(gameObject); alerta.GetComponent(GUIText).text = "Has obtenido "+nombreObjeto; alerta.animation.Play("GUI-textoAlert"); } La función golpear es la función que se activara cuando se indique el objeto y se encargara de restar vida al objeto. el objeto se destruirá cuando valor de vida sea menor o igual a 0. Script del Objeto
  • 6. Configuración de los elementos Para el ejemplo son necesarios 3 elementos. Utilizaremos un First Person Controller y un objeto cylinder que simularan el jugador y la linterna respectivamente. Se deben asignar los scripts del ejemplo anterior a estos dos elementos y con los siguientes parámetros:
  • 7. Configuración de los elementos Jugador El script debe estar situado coomo un componente de la cámara.
  • 8. Configuración de los elementos Linterna El tercer elemento será crear un SpotLight como hijo de la cámara en el Jugador. Para simular ser una linterna se debe añadir la siguiente configuración
  • 9. Creación de Inventario var linterna = false; var objetoLinterna : GameObject = null; private var estadoLinterna = false; function Start () { objetoLinterna.light.enabled = estadoLinterna; } function Update () { if(Input.GetButtonDown("Fire2")){ if(estadoLinterna == false){ encenderLinterna(true); }else{ encenderLinterna(false); } } } La variable objetoLinterna debe referenciar al spotlight que se creó para el jugador. Instrucciones para encender y apagar la linterna.
  • 10. function encenderLinterna(resp){ if(linterna == true && objetoLinterna != null){ objetoLinterna.light.enabled = resp; estadoLinterna = resp; } } function setLinterna(resp){ linterna = resp; } Creación de Inventario Instrucciones para encender y apagar la linterna. A este script se le pueden agregar más elementos solo agregando más variables como linterna y su respectiva función setLinterna.
  • 11. Agregar objeto al inventario var vida : int = 1; var nombreObjeto : String = null; var jugador : GameObject = null; var alerta : GameObject = null; function Update () { if(vida <= 0){ destruir(); } } function golpiar(golpe : int){ vida -= golpe; } function destruir(){ Destroy(gameObject); alerta.GetComponent(GUIText).text = "Has obtenido "+nombreObjeto; alerta.animation.Play("GUI-textoAlert"); jugador.SendMessage("setLinterna”, true,SendMessageOptions.DontRequireReceiver); } En la función destruir se ha agregado una última línea de código que envía al jugador el mensaje de que ejecute la función setLinterna con el parámetro true. Script del Objeto
  • 12. Interacción con objetos Tutorial para versión 4 (Unity4) Taller de videojuegos – Universidad de La Frontera

Notas del editor

  1. El primer script debe ser ubicado en la cámara del First Person Controller. Cada vez que el jugador presione el botón Fire1, este sencillamente realizara una medición de distancia a lo largo del eje x (vector3) entre el jugador y el primer objeto presente a lo largo del eje. Almacenara este dato en la variable distancia. En este caso además se ha añadido que dependiendo un rango de distancia entre el jugador y el objeto se envié un mensaje al objeto. Este mensaje es un básicamente una llamada de función, en este caso a la función golpear, golpe es el parámetro para esta función y supone el daño que se proporcionara al objeto.
  2. La función golpear es la función que se activara cuando se indique el objeto y se encargara de restar vida al objeto. Como lo indica la función Update, el objeto se destruirá cuando valor de vida sea menor o igual a 0. Adicionalmente se agregaron dos parámetros extras (nombreObjeto y alerta) con el propósito de mostrar gráficamente un GUItext con la acción realizada al destruir el objeto. El texto se muestra al iniciar la animación GUI-textoAlert.
  3. La idea consiste en que al apuntar al objeto en cuestión este nos devuelva un mensaje que modifique el estado del inventario. Para lograr esto es necesario modificar el script en el objeto del juego que se ha denominado linterna.