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

PPSX
Codemotion 2014 - Introducción a Unity
PPTX
Tutorial unity interaccion con objetos
PPTX
Scripting_CheatSheet_1.pptx
PPTX
Unity3D_PARA_MONOS.pptx
PPTX
01_Unity_Primeros pasos.pptx
PDF
Esenciales olvidados a la hora de programar videojuegos
PPTX
Física 3D en Unity - Clase 1 / 4
PPTX
Creación de videojuegos con unity
Codemotion 2014 - Introducción a Unity
Tutorial unity interaccion con objetos
Scripting_CheatSheet_1.pptx
Unity3D_PARA_MONOS.pptx
01_Unity_Primeros pasos.pptx
Esenciales olvidados a la hora de programar videojuegos
Física 3D en Unity - Clase 1 / 4
Creación de videojuegos con unity

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

PDF
Introduccion a unity
PDF
TALLER VIDEOJUEGO 2D
PDF
Experiencias desarrollando mi primer videojuego - Techne18
PPTX
Física 3D en Unity - Clase 3 / 4
PPTX
Física 3D en Unity - Clase 4 / 4
PDF
Manual y temario unity
PPTX
Trucos de Unity que nadie te cuenta
DOCX
Codigo Explicado Rompe Bloques.docx
PDF
Manual de Action box en español
PPTX
Introduccion A Xna By Lasa
PDF
Cesnavarra 2008-boletín 2
PPTX
Como crear un videojuego
PDF
Optimización del rendimiento
PDF
1. tutorial unity3d introducción
PDF
1. tutorial unity3d introducción
PPTX
Presentacion05
PPTX
Presentacion05
DOCX
PPTX
Scripting_CheatSheet_2.pptx
PDF
Introducción a Unity 5 - Conceptos básicos de los videojuegos
Introduccion a unity
TALLER VIDEOJUEGO 2D
Experiencias desarrollando mi primer videojuego - Techne18
Física 3D en Unity - Clase 3 / 4
Física 3D en Unity - Clase 4 / 4
Manual y temario unity
Trucos de Unity que nadie te cuenta
Codigo Explicado Rompe Bloques.docx
Manual de Action box en español
Introduccion A Xna By Lasa
Cesnavarra 2008-boletín 2
Como crear un videojuego
Optimización del rendimiento
1. tutorial unity3d introducción
1. tutorial unity3d introducción
Presentacion05
Presentacion05
Scripting_CheatSheet_2.pptx
Introducción a Unity 5 - Conceptos básicos de los videojuegos
Publicidad

Más de Victor Marin (6)

PPTX
Unidad2asdakjkjak11231231231231323232.pptx
PPTX
Presentación INACAP.pptx
PPTX
PresentacionTrabajo2.pptx
PPT
presentacionvideojuegostecnologia-110605125937-phpapp02.ppt
PPTX
381632193 las-5 w-2h-pptx
PDF
Guia 1
Unidad2asdakjkjak11231231231231323232.pptx
Presentación INACAP.pptx
PresentacionTrabajo2.pptx
presentacionvideojuegostecnologia-110605125937-phpapp02.ppt
381632193 las-5 w-2h-pptx
Guia 1
Publicidad

Último (20)

PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
PDF
clase auditoria informatica 2025.........
PDF
Ronmy José Cañas Zambrano - Potenciando la tecnología en Venezuela.pdf
PDF
capacitación de aire acondicionado Bgh r 410
PDF
CyberOps Associate - Cisco Networking Academy
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
Maste clas de estructura metálica y arquitectura
PPTX
Sesion 1 de microsoft power point - Clase 1
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
modulo seguimiento 1 para iniciantes del
PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
informe_fichas1y2_corregido.docx (2) (1).pdf
clase auditoria informatica 2025.........
Ronmy José Cañas Zambrano - Potenciando la tecnología en Venezuela.pdf
capacitación de aire acondicionado Bgh r 410
CyberOps Associate - Cisco Networking Academy
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Influencia-del-uso-de-redes-sociales.pdf
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Maste clas de estructura metálica y arquitectura
Sesion 1 de microsoft power point - Clase 1
El-Gobierno-Electrónico-En-El-Estado-Bolivia
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
modulo seguimiento 1 para iniciantes del
SAP Transportation Management para LSP, TM140 Col18
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Presentacion de Alba Curso Auditores Internos ISO 19011

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()