private void Update() { if (participationData == null || participationData.ParticipatingGO == null) { return; } GameObject gameObject = ActionSequencer.FindActionGraphObject(participationData.ParticipatingGO.Value); if (gameObject != null) { if (participationData.CurrentParticipationState == ParticipationState.Participating) { if (interactRequest.Active && gameObject.activeInHierarchy) { Service.Get <ActionConfirmationService>().ConfirmAction(typeof(PenguinInteraction), gameObject, delegate { CoroutineRunner.Start(preStartInteraction(participantReference.Value), this, "preStartInteraction"); }); interactRequest.Reset(); } } else if (participationData.CurrentParticipationState == ParticipationState.Pending && !canInteractWithActionGraph(gameObject)) { participationController.ClearPriorityCompetition(participantReference); } } interactRequest.Update(); }