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);
                    }
                }
            }
        }
Example #3
0
        /// <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;
            }
        }
Example #5
0
        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();
 }