Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

220
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda