//Event não pode ser atribuido com o perador =, apenas com += public static void TestEventAction() { Console.WriteLine("Teste Action OnGet e OnChanged"); ActionEventClass.Texto1 = "Número alterado!"; string textoLocal = "Obtendo número... "; ActionEventClass.OnGetAction = (int n) => { Thread.Sleep(1000); Console.WriteLine(textoLocal + n); Thread.Sleep(1000); }; //Fora da classe não pode atribuir um valor nulo para um evento, mas na própria classe sim ActionEventClass.OnSetedEvent += (string t) => { Thread.Sleep(1000); Console.WriteLine(t); }; ActionEventClass.Numero = 1; var numero = ActionEventClass.Numero; ActionEventClass.Numero = 2; numero = ActionEventClass.Numero; ActionEventClass.Numero = 3; numero = ActionEventClass.Numero; //Nada impede de executar a action atravez da classe ActionEventClass.OnGetAction(1); }
private void Start() { contextMenuState = ContextPointerMenu.ContextState.CUSTOM_OBJECTS; ActionMap = ActionHandler.actions.Transformable; placeAction = ActionHandler.instance.GetAction(ActionHandler.actions.Transformable.Place); meshCollider = GetComponent <Collider>(); gameObject.transform.position = Vector3.zero; bounds = new Bounds(gameObject.transform.position, Vector3.zero); Mesh mesh = gameObject.GetComponent <MeshFilter>().mesh; bounds = mesh.bounds; transform.position = Vector3.zero; if (stickToMouse) { HelpMessage.Instance.Show("<b>Klik</b> op het punt waar het object geplaatst moet worden\n\nGebruik de <b>Escape</b> toets om te annuleren"); PlacementSettings(); placeActionEvent = placeAction.SubscribePerformed(Place); TakeInteractionPriority(); StartCoroutine(StickToMouse()); meshCollider.enabled = false; } }