void DistraerseFSM() { switch (estadoDistraerse) { case EstadosDistraerse.TRABAJAR: FSM(); timerDistraerse -= Time.deltaTime; if (veJuguete && timerDistraerse <= 0) { timerDistraerse = 60; veJuguete = false; walkTo(juguete.transform.GetChild(0).position); estadoDistraerse = EstadosDistraerse.IR_JUGUETE; } break; case EstadosDistraerse.IR_JUGUETE: rotateTowards(juguete.transform.position); if (isInPosition() && isLookingTowards(juguete.transform.position)) { play(); distraido = true; estadoDistraerse = EstadosDistraerse.DISTRAERSE; } break; case EstadosDistraerse.DISTRAERSE: if (mirarEncargado) { idle(); rotateTowards(encargado.transform.position); if (isLookingTowards(encargado.transform.position)) { shamed(); estadoDistraerse = EstadosDistraerse.AVERGONZADO; } } break; case EstadosDistraerse.AVERGONZADO: if (vuelveAlTrabajo) { distraido = false; vuelveAlTrabajo = false; mirarEncargado = false; estadoDistraerse = EstadosDistraerse.TRABAJAR; } break; } }
//Inicialización de variables de mundo void Start() { puestoCamarero = mundo.puestoCamareros; posCatmareroCocina = mundo.posCatmereroCocina.transform.position; juguete = mundo.juguete; transform.position = puestoCamarero; posMesaPedidos = mundo.mesaPedidos.transform.GetChild(0).position; estadoActual = EstadosFSM1.ESPERAR; estadoDistraerse = EstadosDistraerse.TRABAJAR; veJuguete = false; vuelveAlTrabajo = false; distraido = false; mirarEncargado = false; timer = waitingTime; timerDistraerse = 30; bandeja = transform.Find("bandeja"); idle(); }