SlideShare una empresa de Scribd logo
1 de 8
Scripts y
Métodos básicos
• En UnityEngine disponemos de la
clase MonoBehaviour,básica para
definir scripts que serán asociados a
GameObjects o Prefabs
• System.Collections pertenece a .NET
y nos permite definir listas, arrays
dinámicos,tablas hash etc.
using UnityEngine;
using System.Collections;
public class Ejemplo : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
Plantilla de un script
Desarrollando scripts en C#
✤ En la programación de juegos en Unity3D, y en general, no
todas las características de C# son adecuadas
✤ Problemas de rendimiento
✤ Problemas con la integración del editor
✤ Particularidades al derivar de MonoBehaviour
✤ Características no implementadas completamente en
Unity3D
✤ etc.
✤ No obstante, la mayoría están disponibles e incluso las más
avanzadas pueden resultar muy útiles en muchos contextos
(delegados y eventos, expresiones lambda, linq, métodos de
extensión etc.)
✤ En cualquier caso, hay que tener mucho cuidado con aquello
que se ejecuta en métodos como Update(), FixedUpdate(),
LateUpdate() etc. debido a que son ejecutados de forma
repetida y con mucha frecuencia =>problemas de eficiencia y
pocos frames por segundo
Desarrollando scripts en C#
✤ Los scripts en Unity3D derivan de la clase MonoBehaviour
✤ Es importante tener en cuenta que un script es un componente
de un GameObject, y por tanto, this en este contexto hace
referencia al script y no al GameObject
✤ Podemos asignar cuantos queramos a un GameObject
✤ Métodos más destacados:
✤ Awake(), Start()
✤ Update(), FixedUpdate(), LateUpdate()
✤ OnCollisionEnter(), OnCollisionStay(), OnCollisionExit() y
sus equivalentes OnTrigger()
✤ OnBecameVisible(), OnBecameInvisible()
✤ OnMouseDown(), OnMouseOver()
✤ OnEnable(), OnDisable() ...
Awake() y Start()
void Awake() {
...
}
- El Awake() es el primer método que se ejecuta cuando el objeto es inicializado
- DEBE ser utilizado como substituto del constructor
- Siempre se ejecuta antes que cualquier Start() de todos los objetos
- Resulta perfecto para inicializar enlaces cruzados entre objetos
void Start() {
...
}
-El método Start() supone un segundo paso de inicialización (tras todos los Awake()
de los objetos) y todos los Start() se ejecutarán antes que cualquier Update()
- Mediante Awake() y Start() podemos inicializar todos nuestros objetos en 2 pasos
-Start() sólo se llama si el GameObject está activado (aparece ‘clickado’ en el
Inspector)
-Uno de los principales objetivos de un script consiste en actualizar de alguna forma
el GameObject al que está asignado
-Esta actualización consiste generalmente en cambiar su posición, escala, rotación, la
aplicación de fuerzas,cambios de colores,de estado etc.
- Para lleva a cabo estas tareas, Unity3D nos proporciona varias alternativas:
Update(), FixedUpdate(), LateUpdate()
void Update() {
...
}
- Update es la más común y se caracteriza porque será llamada en cada frame
-El buen rendimiento del código que pongamos en este método (en todos los objetos
de la escena) será uno de los aspectos que más influirán en los FPS finales
- Perfecto para actualizar objetos no físicos y recibir interacciones de los usuarios
- Sólo se ejecutará si el objeto está activo (enabled)
Update(), FixedUpdate(), LateUpdate()
void FixedUpdate() {
...
}
-FixedUpdate se llamará en intervalos regulares y todas las actualizaciones
físicas (paso del motor físico) se llevarán a cabo tras el FixedUpdate
-Por tanto, es el sitio perfecto para todo lo relacionado con cambios en el
Rigidbody del GameObject, es decir, aplicar fuerzas por ejemplo
-FixedUpdate puede ser invocado con más o menos frecuencia que Update,
dado que éste último lo lleva a cabo en un ratio variable, mientras que
FixedUpdate lo hace siempre de forma constante (este ratio puede cambiarse)
Update(), FixedUpdate(), LateUpdate()
void LateUpdate() {
...
}
-El LateUpdate de un Gameobject se invocará cuando todos los Update de
todos los objetos hayan sido ejecutados
-Por tanto, es como una nueva oportunidad de actualizar posiciones de objetos
cuando todos los objetos de la escena ya han llevado a cabo sus actualizaciones
mediante su Update
-Al igual que Update, se ejecuta en cada frame y suele utilizarse cuando un
objeto sigue, por ejemplo a otro en la escena, de forma que tenemos la
seguridad de que el primero se ha movido y el que le sigue se actualiza tras el
movimiento del primero (así no tenemos que preocuparnos respecto al orden en
el que los Update se ejecutan)
Update(), FixedUpdate(), LateUpdate()

Más contenido relacionado

Similar a Unity3D-12-Scripts_y_metodos_basicos.pptx

Desarrollar juegos para Iphone e Ipad con Cocos2D
Desarrollar juegos para Iphone e Ipad con Cocos2DDesarrollar juegos para Iphone e Ipad con Cocos2D
Desarrollar juegos para Iphone e Ipad con Cocos2D
creagamers
 
Componentes Ubuntu
Componentes UbuntuComponentes Ubuntu
Componentes Ubuntu
Elvis Calle
 
Adelanto de los temas de android (introduccion-10)
Adelanto de los temas de android (introduccion-10)Adelanto de los temas de android (introduccion-10)
Adelanto de los temas de android (introduccion-10)
equipotresamp
 
Manual compilacion de java en dos
Manual compilacion de java en dosManual compilacion de java en dos
Manual compilacion de java en dos
alexisdario
 

Similar a Unity3D-12-Scripts_y_metodos_basicos.pptx (20)

JVM Reactive Programming
JVM Reactive ProgrammingJVM Reactive Programming
JVM Reactive Programming
 
Todo Javascript para canibales
Todo Javascript para canibalesTodo Javascript para canibales
Todo Javascript para canibales
 
Javascript de Canibales
Javascript de CanibalesJavascript de Canibales
Javascript de Canibales
 
Java Script de canibaless
Java Script de canibalessJava Script de canibaless
Java Script de canibaless
 
Look and feel java
Look and feel javaLook and feel java
Look and feel java
 
Monitorizando aplicaciones con AspectJ
Monitorizando aplicaciones con AspectJMonitorizando aplicaciones con AspectJ
Monitorizando aplicaciones con AspectJ
 
Gwt III - Avanzado
Gwt III - AvanzadoGwt III - Avanzado
Gwt III - Avanzado
 
Introducción al desarrollo Web: Frontend con Angular 6
Introducción al desarrollo Web: Frontend con Angular 6Introducción al desarrollo Web: Frontend con Angular 6
Introducción al desarrollo Web: Frontend con Angular 6
 
Desarrollar juegos para Iphone e Ipad con Cocos2D
Desarrollar juegos para Iphone e Ipad con Cocos2DDesarrollar juegos para Iphone e Ipad con Cocos2D
Desarrollar juegos para Iphone e Ipad con Cocos2D
 
Curso de Desarrollo Web 2
Curso de Desarrollo Web 2Curso de Desarrollo Web 2
Curso de Desarrollo Web 2
 
Primera App - Laboratorio Android
Primera App - Laboratorio AndroidPrimera App - Laboratorio Android
Primera App - Laboratorio Android
 
Componentes Ubuntu
Componentes UbuntuComponentes Ubuntu
Componentes Ubuntu
 
Segundo laboratorio de Android
Segundo laboratorio de AndroidSegundo laboratorio de Android
Segundo laboratorio de Android
 
Webinar: Base de Datos en tiempo real con MeteorJS
Webinar: Base de Datos en tiempo real con MeteorJSWebinar: Base de Datos en tiempo real con MeteorJS
Webinar: Base de Datos en tiempo real con MeteorJS
 
Novedades Xamarin.Forms 2
Novedades Xamarin.Forms 2Novedades Xamarin.Forms 2
Novedades Xamarin.Forms 2
 
Adelanto de los temas de android (introduccion-10)
Adelanto de los temas de android (introduccion-10)Adelanto de los temas de android (introduccion-10)
Adelanto de los temas de android (introduccion-10)
 
JSR354: Moneda y Dinero - Taller
JSR354: Moneda y Dinero - TallerJSR354: Moneda y Dinero - Taller
JSR354: Moneda y Dinero - Taller
 
Concurrencia en Java
Concurrencia en Java Concurrencia en Java
Concurrencia en Java
 
Programación i
Programación iProgramación i
Programación i
 
Manual compilacion de java en dos
Manual compilacion de java en dosManual compilacion de java en dos
Manual compilacion de java en dos
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (10)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 

Unity3D-12-Scripts_y_metodos_basicos.pptx

  • 2. • En UnityEngine disponemos de la clase MonoBehaviour,básica para definir scripts que serán asociados a GameObjects o Prefabs • System.Collections pertenece a .NET y nos permite definir listas, arrays dinámicos,tablas hash etc. using UnityEngine; using System.Collections; public class Ejemplo : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { } } Plantilla de un script
  • 3. Desarrollando scripts en C# ✤ En la programación de juegos en Unity3D, y en general, no todas las características de C# son adecuadas ✤ Problemas de rendimiento ✤ Problemas con la integración del editor ✤ Particularidades al derivar de MonoBehaviour ✤ Características no implementadas completamente en Unity3D ✤ etc. ✤ No obstante, la mayoría están disponibles e incluso las más avanzadas pueden resultar muy útiles en muchos contextos (delegados y eventos, expresiones lambda, linq, métodos de extensión etc.) ✤ En cualquier caso, hay que tener mucho cuidado con aquello que se ejecuta en métodos como Update(), FixedUpdate(), LateUpdate() etc. debido a que son ejecutados de forma repetida y con mucha frecuencia =>problemas de eficiencia y pocos frames por segundo
  • 4. Desarrollando scripts en C# ✤ Los scripts en Unity3D derivan de la clase MonoBehaviour ✤ Es importante tener en cuenta que un script es un componente de un GameObject, y por tanto, this en este contexto hace referencia al script y no al GameObject ✤ Podemos asignar cuantos queramos a un GameObject ✤ Métodos más destacados: ✤ Awake(), Start() ✤ Update(), FixedUpdate(), LateUpdate() ✤ OnCollisionEnter(), OnCollisionStay(), OnCollisionExit() y sus equivalentes OnTrigger() ✤ OnBecameVisible(), OnBecameInvisible() ✤ OnMouseDown(), OnMouseOver() ✤ OnEnable(), OnDisable() ...
  • 5. Awake() y Start() void Awake() { ... } - El Awake() es el primer método que se ejecuta cuando el objeto es inicializado - DEBE ser utilizado como substituto del constructor - Siempre se ejecuta antes que cualquier Start() de todos los objetos - Resulta perfecto para inicializar enlaces cruzados entre objetos void Start() { ... } -El método Start() supone un segundo paso de inicialización (tras todos los Awake() de los objetos) y todos los Start() se ejecutarán antes que cualquier Update() - Mediante Awake() y Start() podemos inicializar todos nuestros objetos en 2 pasos -Start() sólo se llama si el GameObject está activado (aparece ‘clickado’ en el Inspector)
  • 6. -Uno de los principales objetivos de un script consiste en actualizar de alguna forma el GameObject al que está asignado -Esta actualización consiste generalmente en cambiar su posición, escala, rotación, la aplicación de fuerzas,cambios de colores,de estado etc. - Para lleva a cabo estas tareas, Unity3D nos proporciona varias alternativas: Update(), FixedUpdate(), LateUpdate() void Update() { ... } - Update es la más común y se caracteriza porque será llamada en cada frame -El buen rendimiento del código que pongamos en este método (en todos los objetos de la escena) será uno de los aspectos que más influirán en los FPS finales - Perfecto para actualizar objetos no físicos y recibir interacciones de los usuarios - Sólo se ejecutará si el objeto está activo (enabled) Update(), FixedUpdate(), LateUpdate()
  • 7. void FixedUpdate() { ... } -FixedUpdate se llamará en intervalos regulares y todas las actualizaciones físicas (paso del motor físico) se llevarán a cabo tras el FixedUpdate -Por tanto, es el sitio perfecto para todo lo relacionado con cambios en el Rigidbody del GameObject, es decir, aplicar fuerzas por ejemplo -FixedUpdate puede ser invocado con más o menos frecuencia que Update, dado que éste último lo lleva a cabo en un ratio variable, mientras que FixedUpdate lo hace siempre de forma constante (este ratio puede cambiarse) Update(), FixedUpdate(), LateUpdate()
  • 8. void LateUpdate() { ... } -El LateUpdate de un Gameobject se invocará cuando todos los Update de todos los objetos hayan sido ejecutados -Por tanto, es como una nueva oportunidad de actualizar posiciones de objetos cuando todos los objetos de la escena ya han llevado a cabo sus actualizaciones mediante su Update -Al igual que Update, se ejecuta en cada frame y suele utilizarse cuando un objeto sigue, por ejemplo a otro en la escena, de forma que tenemos la seguridad de que el primero se ha movido y el que le sigue se actualiza tras el movimiento del primero (así no tenemos que preocuparnos respecto al orden en el que los Update se ejecutan) Update(), FixedUpdate(), LateUpdate()