Feel  3.16
The best way to improve your game's feel and make it extra juicy
MoreMountains.Feedbacks.MMFeedbackMaterial Class Reference
Inheritance diagram for MoreMountains.Feedbacks.MMFeedbackMaterial:
MoreMountains.Feedbacks.MMFeedback

Public Types

enum  Methods { Methods.Sequential, Methods.Random }
 sets the inspector color for this feedback More...
 

Public Member Functions

virtual float GetTime ()
 
virtual float GetDeltaTime ()
 
- Public Member Functions inherited from MoreMountains.Feedbacks.MMFeedback
virtual MMChannelData ChannelData (int channel)
 
virtual void Initialization (GameObject owner)
 Initializes the feedback and its timing related variables More...
 
virtual void Play (Vector3 position, float feedbacksIntensity=1.0f)
 Plays the feedback More...
 
virtual void Stop (Vector3 position, float feedbacksIntensity=1.0f)
 Stops all feedbacks from playing. Will stop repeating feedbacks, and call custom stop implementations More...
 
virtual void ResetFeedback ()
 Calls this feedback's custom reset More...
 
virtual void SetSequence (MMSequence newSequence)
 Use this method to change this feedback's sequence at runtime More...
 
virtual void SetDelayBetweenRepeats (float delay)
 Use this method to specify a new delay between repeats at runtime More...
 
virtual void SetInitialDelay (float delay)
 Use this method to specify a new initial delay at runtime More...
 

Public Attributes

Renderer TargetRenderer
 the renderer to change material on More...
 
int[] RendererMaterialIndexes
 the list of material indexes we want to change on the target renderer. If left empty, will only target the material at index 0 More...
 
Methods Method
 the selected method More...
 
bool Loop = true
 whether or not the sequential order should loop More...
 
bool AlwaysNewMaterial = true
 whether or not to always pick a new material in random mode More...
 
int InitialIndex = 0
 the initial index to start with More...
 
List< Material > Materials
 the list of materials to pick from More...
 
bool InterpolateTransition = false
 
float TransitionDuration = 1f
 the duration of the interpolation, in seconds More...
 
AnimationCurve TransitionCurve = new AnimationCurve(new Keyframe(0, 0), new Keyframe(1, 1))
 the animation curve to interpolate the transition on More...
 
- Public Attributes inherited from MoreMountains.Feedbacks.MMFeedback
bool Active = true
 whether or not this feedback is active More...
 
string Label = "MMFeedback"
 the name of this feedback to display in the inspector More...
 
float Chance = 100f
 the chance of this feedback happening (in percent : 100 : happens all the time, 0 : never happens, 50 : happens once every two calls, etc) More...
 
MMFeedbackTiming Timing
 a number of timing-related values (delay, repeat, etc) More...
 
bool DebugActive = false
 whether or not this feedback is in debug mode More...
 

Static Public Attributes

static bool FeedbackTypeAuthorized = true
 a static bool used to disable all feedbacks of this type at once More...
 

Protected Member Functions

override void CustomInitialization (GameObject owner)
 On init, grabs the current index More...
 
override void CustomPlayFeedback (Vector3 position, float feedbacksIntensity=1.0f)
 On play feedback, we change the material if possible More...
 
virtual void ApplyMaterial (Material material)
 Applies the new material to all indexes More...
 
virtual void LerpMaterial (Material fromMaterial, Material toMaterial, float t, int materialIndex)
 Lerps to destination material for all indexes More...
 
virtual IEnumerator TransitionMaterial (Material originalMaterial, Material newMaterial, int materialIndex)
 A coroutine used to interpolate between materials More...
 
virtual int DetermineNextIndex ()
 Determines the new material to pick More...
 
override void CustomStopFeedback (Vector3 position, float feedbacksIntensity=1)
 Stops the transition on stop if needed More...
 
- Protected Member Functions inherited from MoreMountains.Feedbacks.MMFeedback
virtual void OnEnable ()
 
virtual IEnumerator PlayCoroutine (Vector3 position, float feedbacksIntensity=1.0f)
 An internal coroutine delaying the initial play of the feedback More...
 
virtual void RegularPlay (Vector3 position, float feedbacksIntensity=1.0f)
 Triggers delaying coroutines if needed More...
 
virtual IEnumerator InfinitePlay (Vector3 position, float feedbacksIntensity=1.0f)
 Internal coroutine used for repeated play without end More...
 
virtual IEnumerator RepeatedPlay (Vector3 position, float feedbacksIntensity=1.0f)
 Internal coroutine used for repeated play More...
 
virtual IEnumerator SequenceCoroutine (Vector3 position, float feedbacksIntensity=1.0f)
 A coroutine used to play this feedback on a sequence More...
 
virtual float ApplyDirection (float normalizedTime)
 Returns a new value of the normalized time based on the current play direction of this feedback More...
 
virtual float ApplyTimeMultiplier (float duration)
 Applies the host MMFeedbacks' time multiplier to this feedback More...
 
virtual void CustomReset ()
 This method describes what happens when the feedback gets reset More...
 

Protected Attributes

int _currentIndex
 
float _startedAt
 
Coroutine[] _coroutines
 
Material[] _tempMaterials
 
- Protected Attributes inherited from MoreMountains.Feedbacks.MMFeedback
float _lastPlayTimestamp = -1f
 
int _playsLeft
 
bool _initialized = false
 
Coroutine _playCoroutine
 
Coroutine _infinitePlayCoroutine
 
Coroutine _sequenceCoroutine
 
Coroutine _repeatedPlayCoroutine
 
int _sequenceTrackID = 0
 
MMFeedbacks _hostMMFeedbacks
 
float _beatInterval
 
bool BeatThisFrame = false
 
int LastBeatIndex = 0
 
int CurrentSequenceIndex = 0
 
float LastBeatTimestamp = 0f
 
bool _isHostMMFeedbacksNotNull
 
MMChannelData _channelData
 

Properties

override float? FeedbackDuration [get, set]
 the duration of this feedback is the duration of the shake More...
 
- Properties inherited from MoreMountains.Feedbacks.MMFeedback
GameObject Owner [get, set]
 the Owner of the feedback, as defined when calling the Initialization method More...
 
virtual IEnumerator Pause [get]
 set this to true if your feedback should pause the execution of the feedback sequence More...
 
virtual bool HoldingPause [get]
 if this is true, this feedback will wait until all previous feedbacks have run More...
 
virtual bool LooperPause [get]
 if this is true, this feedback will wait until all previous feedbacks have run, then run all previous feedbacks again More...
 
virtual bool ScriptDrivenPause [get, set]
 if this is true, this feedback will pause and wait until Resume() is called on its parent MMFeedbacks to resume execution More...
 
virtual float ScriptDrivenPauseAutoResume [get, set]
 if this is a positive value, the feedback will auto resume after that duration if it hasn't been resumed via script already More...
 
virtual bool LooperStart [get]
 if this is true, this feedback will wait until all previous feedbacks have run, then run all previous feedbacks again More...
 
virtual bool InCooldown [get]
 returns true if this feedback is in cooldown at this time (and thus can't play), false otherwise More...
 
virtual bool IsPlaying [get, set]
 if this is true, this feedback is currently playing More...
 
float FeedbackTime [get]
 the time (or unscaled time) based on the selected Timing settings More...
 
float FeedbackDeltaTime [get]
 the delta time (or unscaled delta time) based on the selected Timing settings More...
 
float TotalDuration [get]
 The total duration of this feedback : total = initial delay + duration * (number of repeats + delay between repeats)
More...
 
virtual float FeedbackStartedAt [get]
 
virtual float FeedbackDuration [get, set]
 
virtual bool FeedbackPlaying [get]
 whether or not this feedback is playing right now More...
 
virtual bool NormalPlayDirection [get]
 Returns true if this feedback should play normally, or false if it should play in rewind More...
 
virtual bool ShouldPlayInThisSequenceDirection [get]
 Returns true if this feedback should play in the current parent MMFeedbacks direction, according to its MMFeedbacksDirectionCondition setting More...
 
virtual float? FinalNormalizedTime [get]
 Returns the t value at which to evaluate a curve at the end of this feedback's play time More...
 

Member Enumeration Documentation

◆ Methods

sets the inspector color for this feedback

the possible methods to switch materials

Enumerator
Sequential 
Random 

Member Function Documentation

◆ ApplyMaterial()

virtual void MoreMountains.Feedbacks.MMFeedbackMaterial.ApplyMaterial ( Material  material)
protectedvirtual

Applies the new material to all indexes

Parameters
material

◆ CustomInitialization()

override void MoreMountains.Feedbacks.MMFeedbackMaterial.CustomInitialization ( GameObject  owner)
protectedvirtual

On init, grabs the current index

Parameters
owner

Reimplemented from MoreMountains.Feedbacks.MMFeedback.

◆ CustomPlayFeedback()

override void MoreMountains.Feedbacks.MMFeedbackMaterial.CustomPlayFeedback ( Vector3  position,
float  feedbacksIntensity = 1.0f 
)
protectedvirtual

On play feedback, we change the material if possible

Parameters
position
feedbacksIntensity

Implements MoreMountains.Feedbacks.MMFeedback.

◆ CustomStopFeedback()

override void MoreMountains.Feedbacks.MMFeedbackMaterial.CustomStopFeedback ( Vector3  position,
float  feedbacksIntensity = 1 
)
protectedvirtual

Stops the transition on stop if needed

Parameters
position
feedbacksIntensity

Reimplemented from MoreMountains.Feedbacks.MMFeedback.

◆ DetermineNextIndex()

virtual int MoreMountains.Feedbacks.MMFeedbackMaterial.DetermineNextIndex ( )
protectedvirtual

Determines the new material to pick

Returns

◆ GetDeltaTime()

virtual float MoreMountains.Feedbacks.MMFeedbackMaterial.GetDeltaTime ( )
virtual

◆ GetTime()

virtual float MoreMountains.Feedbacks.MMFeedbackMaterial.GetTime ( )
virtual

◆ LerpMaterial()

virtual void MoreMountains.Feedbacks.MMFeedbackMaterial.LerpMaterial ( Material  fromMaterial,
Material  toMaterial,
float  t,
int  materialIndex 
)
protectedvirtual

Lerps to destination material for all indexes

Parameters
fromMaterial
toMaterial
t
materialIndex

◆ TransitionMaterial()

virtual IEnumerator MoreMountains.Feedbacks.MMFeedbackMaterial.TransitionMaterial ( Material  originalMaterial,
Material  newMaterial,
int  materialIndex 
)
protectedvirtual

A coroutine used to interpolate between materials

Parameters
originalMaterial
newMaterial
Returns

Member Data Documentation

◆ _coroutines

Coroutine [] MoreMountains.Feedbacks.MMFeedbackMaterial._coroutines
protected

◆ _currentIndex

int MoreMountains.Feedbacks.MMFeedbackMaterial._currentIndex
protected

◆ _startedAt

float MoreMountains.Feedbacks.MMFeedbackMaterial._startedAt
protected

◆ _tempMaterials

Material [] MoreMountains.Feedbacks.MMFeedbackMaterial._tempMaterials
protected

◆ AlwaysNewMaterial

bool MoreMountains.Feedbacks.MMFeedbackMaterial.AlwaysNewMaterial = true

whether or not to always pick a new material in random mode

◆ FeedbackTypeAuthorized

bool MoreMountains.Feedbacks.MMFeedbackMaterial.FeedbackTypeAuthorized = true
static

a static bool used to disable all feedbacks of this type at once

◆ InitialIndex

int MoreMountains.Feedbacks.MMFeedbackMaterial.InitialIndex = 0

the initial index to start with

◆ InterpolateTransition

bool MoreMountains.Feedbacks.MMFeedbackMaterial.InterpolateTransition = false

whether or not to interpolate between 2 materials IMPORTANT : this will only work for materials that share the same shader and texture (see https://docs.unity3d.com/ScriptReference/Material.Lerp.html)

◆ Loop

bool MoreMountains.Feedbacks.MMFeedbackMaterial.Loop = true

whether or not the sequential order should loop

◆ Materials

List<Material> MoreMountains.Feedbacks.MMFeedbackMaterial.Materials

the list of materials to pick from

◆ Method

Methods MoreMountains.Feedbacks.MMFeedbackMaterial.Method

the selected method

◆ RendererMaterialIndexes

int [] MoreMountains.Feedbacks.MMFeedbackMaterial.RendererMaterialIndexes

the list of material indexes we want to change on the target renderer. If left empty, will only target the material at index 0

◆ TargetRenderer

Renderer MoreMountains.Feedbacks.MMFeedbackMaterial.TargetRenderer

the renderer to change material on

◆ TransitionCurve

AnimationCurve MoreMountains.Feedbacks.MMFeedbackMaterial.TransitionCurve = new AnimationCurve(new Keyframe(0, 0), new Keyframe(1, 1))

the animation curve to interpolate the transition on

◆ TransitionDuration

float MoreMountains.Feedbacks.MMFeedbackMaterial.TransitionDuration = 1f

the duration of the interpolation, in seconds

Property Documentation

◆ FeedbackDuration

override float? MoreMountains.Feedbacks.MMFeedbackMaterial.FeedbackDuration
getset

the duration of this feedback is the duration of the shake


The documentation for this class was generated from the following file: