void StateChange(Button.ButtonStateEnum newState) { if (SoundProfile == null) { Debug.LogError("Sound profile was null in button " + name); return; } switch (newState) { case Button.ButtonStateEnum.Observation: PlayClip(SoundProfile.ButtonObservation, SoundProfile.ButtonObservationVolume); break; case Button.ButtonStateEnum.ObservationTargeted: PlayClip(SoundProfile.ButtonObservationTargeted, SoundProfile.ButtonObservationTargetedVolume); break; case Button.ButtonStateEnum.Targeted: PlayClip(SoundProfile.ButtonTargeted, SoundProfile.ButtonTargetedVolume); break; default: break; } }
/// <summary> /// On state change swap out the active mesh based on the state /// </summary> protected void StateChange(Button.ButtonStateEnum newState) { if (newState == Button.ButtonStateEnum.Pressed) { lastTimePressed = Time.time; } currentDatum = MeshProfile.ButtonStates[(int)newState]; // If we're not using smooth states, just set them now if (!MeshProfile.SmoothStateChanges) { TargetTransform.localScale = currentDatum.Scale; TargetTransform.localPosition = currentDatum.Offset; if (Renderer != null) { if (instantiatedMaterial == null) { sharedMaterial = Renderer.sharedMaterial; instantiatedMaterial = new Material(sharedMaterial); Renderer.sharedMaterial = instantiatedMaterial; } if (!string.IsNullOrEmpty(MeshProfile.ColorPropertyName)) { Renderer.sharedMaterial.SetColor(MeshProfile.ColorPropertyName, currentDatum.StateColor); } if (!string.IsNullOrEmpty(MeshProfile.ValuePropertyName)) { Renderer.sharedMaterial.SetFloat(MeshProfile.ValuePropertyName, currentDatum.StateValue); } } } }
/// <summary> /// State change /// </summary> void StateChange(Button.ButtonStateEnum newState) { if (TargetAnimator == null) { return; } if (AnimActions == null) { //TODO error? return; } for (int i = 0; i < AnimActions.Length; i++) { if (AnimActions[i].ButtonState == newState) { switch (AnimActions[i].ParamType) { case AnimatorControllerParameterType.Bool: TargetAnimator.SetBool(AnimActions[i].ParamName, AnimActions[i].BoolValue); break; case AnimatorControllerParameterType.Float: TargetAnimator.SetFloat(AnimActions[i].ParamName, AnimActions[i].FloatValue); break; case AnimatorControllerParameterType.Int: TargetAnimator.SetInteger(AnimActions[i].ParamName, AnimActions[i].IntValue); break; case AnimatorControllerParameterType.Trigger: TargetAnimator.SetTrigger(AnimActions[i].ParamName); break; default: break; } break; } } }
void StateChange(Button.ButtonStateEnum newState) { switch (newState) { case Button.ButtonStateEnum.Observation: PlayClip(ButtonObservation); break; case Button.ButtonStateEnum.ObservationTargeted: PlayClip(ButtonObservationTargeted); break; case Button.ButtonStateEnum.Targeted: PlayClip(ButtonTargeted); break; default: break; } }
void StateChange(Button.ButtonStateEnum newState) { // Don't play the same state multiple times if (lastState == newState) { return; } lastState = newState; // Don't play sounds for inactive buttons if (!gameObject.activeSelf || !gameObject.activeInHierarchy) { return; } if (SoundProfile == null) { UnityEngine.Debug.LogError("Sound profile was null in button " + name); return; } switch (newState) { case Button.ButtonStateEnum.Observation: PlayClip(SoundProfile.ButtonObservation, SoundProfile.ButtonObservationVolume); break; case Button.ButtonStateEnum.ObservationTargeted: PlayClip(SoundProfile.ButtonObservationTargeted, SoundProfile.ButtonObservationTargetedVolume); break; case Button.ButtonStateEnum.Targeted: PlayClip(SoundProfile.ButtonTargeted, SoundProfile.ButtonTargetedVolume); break; default: break; } }
/// <summary> /// Constructor for mesh button datum /// </summary> public MeshButtonDatum(Button.ButtonStateEnum state) { this.ActiveState = state; this.Name = state.ToString(); }