public override IAState update(GameObject obj) { float dist = Vector3.Distance(target.transform.position, obj.transform.position); if (target == null || (targetAttr != null && !targetAttr.isAlive().GetValueOrDefault(false)) || dist > fromAttr.followLimit) { // Target is dead or lost return(null); } else if (dist < (fromAttr.arriveDist + (fromCtrl.radius) + (targetCtrl == null ? 0 : targetCtrl.radius))) { return(nextAction == null ? null : (IAState)nextAction.Invoke(target)); } // obj.transform.LookAt(target.transform.position);/ Vector3 def = target.transform.position - obj.transform.position; obj.transform.position += (def.normalized * fromAttr.velocity * Time.deltaTime); return(this); }
public virtual void Handler(TSource source, TEventArgs eventArgs) { if (Reference != null && Reference.TryGetTarget(out var instance)) { EventAction?.Invoke(instance, source, eventArgs); } else { // Instance surely doesn't survive garbage collections, so passing null for it // Don't removed unnecessary delegate parameter for backward compatibility DetachAction?.Invoke(null, this); } }
public override IAState update(GameObject obj) { if ((Time.time - lastTime) > timeToEat) { var objManager = target.GetComponent <BasicObjectManager>(); if (objManager) { objManager.destroy(); } return(nextAction == null ? null : nextAction.Invoke(null)); } fromCtrl.velocity.Set(0f, 0f, 0f); return(this); }
public override IAState update(GameObject obj) { if (!isInfinite) { timeRemaining -= Time.deltaTime; if (timeRemaining < 0) { return(nextAction == null ? null : nextAction.Invoke(from)); } } if (animatorController != null) { animatorController.setForward(0); } return(this); }
//Todo! Логирование ошибок при отправке public void StartEventExecution() { Task.Run(async delegate { WriteLogMessage($"Init {EventName}"); var delayTime = NotificationTaskEvent.ResolveDate - NiisAmbientContext.Current.DateTimeProvider.Now; if (delayTime > TimeSpan.Zero) { await Task.Delay(delayTime, _workflowEventCancellationToken.Token); } EventAction?.Invoke(NotificationTaskEvent); NotificationAutoEvents.RemoveEvent(EventName); WriteLogMessage($"test {EventName}"); }, _workflowEventCancellationToken.Token); WriteLogMessage($"new event start {EventName}"); }
/// <summary> /// Запускает выполняемую задачу. Задача ждет своего времени исполнения и запускает определенный рабочий процесс. После выполнения, задача помечается как "выполненная". /// <para></para> /// Если задача просрочена, она выполняется сразу же после запуска. /// </summary> public void StartEventExecution() { Task.Run(async delegate { WriteLogMessage($"Init {EventName}"); var delayTime = WorkflowTaskEvent.ResolveDate - NiisAmbientContext.Current.DateTimeProvider.Now; if (delayTime > TimeSpan.Zero) { await Task.Delay(delayTime, _workflowEventCancellationToken.Token); } EventAction?.Invoke(WorkflowTaskEvent); WorkflowAutoEvents.RemoveEvent(EventName); _executor.GetCommand <UpdateMarkAsExecutedWorkflowTaskEvenstByIdCommand>().Process(r => r.Execute(WorkflowTaskEvent.Id)); WriteLogMessage($"Test {EventName}"); }, _workflowEventCancellationToken.Token); WriteLogMessage($"New event start {EventName}"); }
public void Press(int data) => EventAction?.Invoke(this, new MyArgs { DataAboutEvent = data });
public void On(string name, EventAction <string, string> callBack) { base.On(name, (data, respond) => { callBack.Invoke(Cast(data), value => { respond.Invoke(Cast(value)); }); }); }