Table of Contents

Class IdleState

Namespace
FishMMO.Shared
Assembly
FishMMO.Shared.dll

AI state for idle behavior. Handles update rate, entering, exiting, and transition logic for NPCs.

[CreateAssetMenu(fileName = "New AI Idle State", menuName = "FishMMO/Character/NPC/AI/Idle State", order = 0)]
public class IdleState : BaseAIState, ICachedObject
Inheritance
Object
ScriptableObject
IdleState
Implements
Inherited Members
ScriptableObject.SetDirty()
ScriptableObject.CreateInstance<T>()
Object.GetEntityId()
Object.GetInstanceID()
Object.GetHashCode()
Object.InstantiateAsync<T>(T)
Object.InstantiateAsync<T>(T, Transform)
Object.InstantiateAsync<T>(T, Vector3, Quaternion)
Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion, Transform)
Object.Instantiate(Object)
Object.Instantiate(Object, Scene)
Object.Instantiate<T>(T, InstantiateParameters)
Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
Object.Instantiate(Object, Transform)
Object.Instantiate<T>(T)
Object.Instantiate<T>(T, Vector3, Quaternion)
Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
Object.Instantiate<T>(T, Transform)
Object.Destroy(Object)
Object.DestroyImmediate(Object)
Object.DontDestroyOnLoad(Object)
Object.DestroyObject(Object)
Object.FindObjectsOfType<T>()
Object.FindObjectsByType<T>(FindObjectsSortMode)
Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
Object.FindObjectOfType<T>()
Object.FindFirstObjectByType<T>()
Object.FindAnyObjectByType<T>()
Object.FindFirstObjectByType<T>(FindObjectsInactive)
Object.FindAnyObjectByType<T>(FindObjectsInactive)
Object.FindObjectsByType<T>()
Object.FindObjectsByType<T>(FindObjectsInactive)
Object.ToString()
Object.name
Object.hideFlags

Fields

MaxUpdateRate

If MaxUpdateRate is greater than the base update rate, a random value between the two is used.

[Tooltip("If max update rate is greater than the update rate it will return a random range between the two.")]
public float MaxUpdateRate

Field Value

float

Methods

Enter(AIController)

Called when entering the idle state. Stops the AI's movement.

public override void Enter(AIController controller)

Parameters

controller AIController

The AI controller.

Exit(AIController)

Called when exiting the idle state. Clears look target and resumes movement.

public override void Exit(AIController controller)

Parameters

controller AIController

The AI controller.

GetUpdateRate(AIController)

Returns the update rate for the idle state, possibly randomized between base and max.

public override float GetUpdateRate(AIController controller)

Parameters

controller AIController

The AI controller running this state.

Returns

float

Update rate in seconds.

UpdateState(AIController, float)

Called every frame to update the idle state. Transitions to random movement if look target is lost or too far.

public override void UpdateState(AIController controller, float deltaTime)

Parameters

controller AIController

The AI controller.

deltaTime float

Frame time.