Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

213
Vistas
Activar una función cuando se cambian los valores de la matriz

Estoy agregando un conjunto de valores de matriz a través de la ventana del inspector. Estoy tratando de lograr activar una función, cuando cambio los valores de mi matriz. Es decir, mi secuencia de comandos debe verificar si los nuevos valores no son iguales a los valores anteriores y luego llamar a esta función. No quiero usar Actualizar ya que requerirá más memoria y potencia de procesamiento, entonces, ¿cuál podría ser la alternativa?

 public class SetValues : MonoBehaviour { [Serializable] public struct SetValues { public float Position; public float Value; } public SetValues[] setValues; void Function_ValuesChanged() { Debug.Log("The Value is changed"); //Do Something } }
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Prueba MonoBehavior.OnValidate()

Ejemplo:

 public class SetValues : MonoBehaviour { [Serializable] public struct SetValues { public float Position; public float Value; } public SetValues[] setValues; void OnValidate() { Debug.Log("The Value is changed"); //Do Something } }
over 4 years ago · Santiago Trujillo Denunciar

0

Si sucede algo en el juego y desea notificar a otros scripts, use eventos. Los eventos son ligeros y fáciles de implementar.

En la clase que contiene una matriz, cree una propiedad y cambie el valor de la matriz, solo desde la propiedad. Nunca interactúe directamente con el campo de matriz.

 // Create Event Arguments public class OnArrayValueChangedEventArgs : EventArgs { public float Position; public float Value; } // Crate Event public event EventHandler<OnArrayValueChangedEventArgs> OnArrayValueChanged; Array[] myArray; // Change Array value only from this property, so when you change value, event will be called public Array[] MyArray { get { return myArray; } set { myArray = value; OnArrayValueChangedEvent(this, new OnArrayValueChangedEventArgs() { Position = myArray.Position, Value = myArray.Value };} }

Desde la segunda clase, solo debe suscribirse a este evento y hacer las cosas. Llamaré a este evento desde mi clase GameManager Singleton.

 private void Awake() { GameManager.Instance.OnArrayValueChanged += Instance_OnArrayValueChanged; } private void Instance_OnArrayValueChanged(object sender, GameManager.OnArrayValueChangedEventArgs e) { // Do the thing }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda