protected virtual InteractObjectHighlighterEventArgs SetEventArgs(VRTK_InteractableObject.InteractionType interactionType, GameObject affectingObject) { currentAffectingObject = affectingObject; InteractObjectHighlighterEventArgs e; e.interactionType = interactionType; e.highlightColor = currentColour; e.affectingObject = affectingObject; e.objectToMonitor = objectToMonitor; e.affectedObject = objectToHighlight; return(e); }
protected virtual IEnumerator ToggleStateAfterTime(GameObject objectToToggle, bool gameObjectShow, bool rendererShow, float delayTime, VRTK_InteractableObject.InteractionType interactionType) { yield return(new WaitForSeconds(delayTime)); ToggleState(objectToToggle, gameObjectShow, rendererShow, interactionType); }
protected virtual void ToggleState(GameObject objectToToggle, bool gameObjectShow, bool rendererShow, VRTK_InteractableObject.InteractionType interactionType) { if (objectToToggle != null) { if (!currentRenderStates.ContainsKey(objectToToggle) || currentRenderStates[objectToToggle] != rendererShow) { VRTK_ObjectAppearance.ToggleRenderer(rendererShow, objectToToggle, ObjectToIgnore()); EmitRenderEvent(objectToToggle, rendererShow, interactionType); } if (!currentGameObjectStates.ContainsKey(objectToToggle) || currentGameObjectStates[objectToToggle] != gameObjectShow) { objectToToggle.SetActive(gameObjectShow); EmitGameObjectEvent(objectToToggle, gameObjectShow, interactionType); } VRTK_SharedMethods.AddDictionaryValue(currentRenderStates, objectToToggle, rendererShow, true); VRTK_SharedMethods.AddDictionaryValue(currentGameObjectStates, objectToToggle, gameObjectShow, true); } }
protected virtual void EmitGameObjectEvent(GameObject objectToToggle, bool gameObjectShow, VRTK_InteractableObject.InteractionType interactionType) { if (gameObjectShow) { OnGameObjectEnabled(SetPayload(objectToToggle, interactionType)); } else { OnGameObjectDisabled(SetPayload(objectToToggle, interactionType)); } }
protected virtual void EmitRenderEvent(GameObject objectToToggle, bool rendererShow, VRTK_InteractableObject.InteractionType interactionType) { if (rendererShow) { OnRenderersEnabled(SetPayload(objectToToggle, interactionType)); } else { OnRenderersDisabled(SetPayload(objectToToggle, interactionType)); } }
protected virtual InteractObjectAppearanceEventArgs SetPayload(GameObject affectingObject, VRTK_InteractableObject.InteractionType interactionType) { InteractObjectAppearanceEventArgs e; e.affectingObject = affectingObject; e.monitoringObject = objectToMonitor; e.objectToIgnore = ObjectToIgnore(); e.interactionType = interactionType; return(e); }