SlideShare una empresa de Scribd logo
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

PDF
Cartilla Planificación Curricular 2017 MINEDU.
PPSX
Codemotion 2014 - Introducción a Unity
PPTX
Unity3D-12-Scripts_y_metodos_basicos.pptx
PPTX
Unity3D_PARA_MONOS.pptx
PPTX
01_Unity_Primeros pasos.pptx
DOCX
Gruia juego
PDF
2. tutorial unity3d-disparo
PDF
2. tutorial unity3d-disparo
Cartilla Planificación Curricular 2017 MINEDU.
Codemotion 2014 - Introducción a Unity
Unity3D-12-Scripts_y_metodos_basicos.pptx
Unity3D_PARA_MONOS.pptx
01_Unity_Primeros pasos.pptx
Gruia juego
2. tutorial unity3d-disparo
2. tutorial unity3d-disparo

Similar a Tutorial unity interaccion con objetos (20)

PPTX
Física 3D en Unity - Clase 1 / 4
DOCX
Codigo Explicado Rompe Bloques.docx
PPTX
Física 3D en Unity - Clase 4 / 4
PDF
TALLER VIDEOJUEGO 2D
PPTX
Presentacion1410
PPTX
Presentacion1410
PPTX
Scripting_CheatSheet_1.pptx
PDF
Tutorial unity3d 1_español
PDF
Introduccion a unity
PDF
1. tutorial unity3d introducción
PDF
1. tutorial unity3d introducción
PPT
Tutorial c# y Video Juegos
PPTX
Kabuki frogs
PPTX
Creación de videojuegos con unity
PDF
Experiencias desarrollando mi primer videojuego - Techne18
PDF
Fundamento de Programacion para Videojuegos.pdf
PPT
Game Maker Primera parte
PPTX
Como crear un videojuego
PPTX
Presentacion03
Física 3D en Unity - Clase 1 / 4
Codigo Explicado Rompe Bloques.docx
Física 3D en Unity - Clase 4 / 4
TALLER VIDEOJUEGO 2D
Presentacion1410
Presentacion1410
Scripting_CheatSheet_1.pptx
Tutorial unity3d 1_español
Introduccion a unity
1. tutorial unity3d introducción
1. tutorial unity3d introducción
Tutorial c# y Video Juegos
Kabuki frogs
Creación de videojuegos con unity
Experiencias desarrollando mi primer videojuego - Techne18
Fundamento de Programacion para Videojuegos.pdf
Game Maker Primera parte
Como crear un videojuego
Presentacion03
Publicidad

Último (20)

PDF
Módulo-de Alcance-proyectos - Definición.pdf
PPTX
Gestion de seguridad y salud ocupacional.pptx
PDF
Oficio SEC 293416 Comision Investigadora
PDF
TESTAMENTO DE DESCRIPTIVA ..............
PDF
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
PDF
Sugerencias Didacticas 2023_Diseño de Estructuras Metalicas_digital.pdf
PPTX
Software para la educación instituciones superiores
PPTX
Notificacion e investigación de incidentes y accidentes de trabajo.pptx
PPT
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
PPT
Sustancias Peligrosas de empresas para su correcto manejo
PPT
357161027-seguridad-industrial-diapositivas-ppt.ppt
PDF
Primera formulación de cargos de la SEC en contra del CEN
PDF
prg2_t01_p01_Fundamentos POO - parte1.pdf
PPTX
1 CONTAMINACION AMBIENTAL EN EL PLANETA.pptx
PDF
Matriz_Seguimiento_Estu_Consult_2024_ACT.pdf
PDF
GUÍA PARA LA IMPLEMENTACIÓN DEL PLAN PARA LA REDUCCIÓN DEL RIESGO DE DESASTRES
PPTX
Curso Corto de PLANTA CONCENTRADORA FREEPORT
PPTX
Logging While Drilling Ingenieria Petrolera.pptx
PPTX
leyes de los gases Ideales. combustible refinación
PDF
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
Módulo-de Alcance-proyectos - Definición.pdf
Gestion de seguridad y salud ocupacional.pptx
Oficio SEC 293416 Comision Investigadora
TESTAMENTO DE DESCRIPTIVA ..............
Informe Comision Investigadora Final distribución electrica años 2024 y 2025
Sugerencias Didacticas 2023_Diseño de Estructuras Metalicas_digital.pdf
Software para la educación instituciones superiores
Notificacion e investigación de incidentes y accidentes de trabajo.pptx
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
Sustancias Peligrosas de empresas para su correcto manejo
357161027-seguridad-industrial-diapositivas-ppt.ppt
Primera formulación de cargos de la SEC en contra del CEN
prg2_t01_p01_Fundamentos POO - parte1.pdf
1 CONTAMINACION AMBIENTAL EN EL PLANETA.pptx
Matriz_Seguimiento_Estu_Consult_2024_ACT.pdf
GUÍA PARA LA IMPLEMENTACIÓN DEL PLAN PARA LA REDUCCIÓN DEL RIESGO DE DESASTRES
Curso Corto de PLANTA CONCENTRADORA FREEPORT
Logging While Drilling Ingenieria Petrolera.pptx
leyes de los gases Ideales. combustible refinación
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
Publicidad

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

  • #4: 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.
  • #6: 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.
  • #12: 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.