IM.SetVariable

From Intrigues Wiki

SetVariable and SetVariable<T> Methods in IM Class

Overview

The SetVariable methods in the IM class are designed to set the value of a public variable. There are two versions: a non-generic version for general use, and a generic version that returns the updated variable cast to a specific type T.

Syntax

public static void SetVariable(string varNameOrId, object value)
public static T SetVariable<T>(string varNameOrId, object value) where T : NVar

Parameters

  • varNameOrId: The name or ID of the variable to be set.
  • value: The new value to assign to the variable.

Functionality

  • SetVariable (Non-generic):
    • Searches for and sets the value of a variable matching the provided name or ID.
    • Does not return any value.
  • SetVariable<T> (Generic):
    • Operates similarly to the non-generic version but also returns the updated variable cast to the specified type T.
    • Useful when the type of the variable is known and specific type handling is needed.

Usage 1: Non-Generic Method

Used for setting the value of a variable without needing to handle its specific type. This method is suitable for general-purpose variable manipulation.

Example of Usage 1

public class GameSettings : MonoBehaviour {
    public void UpdateAudioVolume(float newVolume) {
        IM.SetVariable("audio_volume", newVolume);
        Debug.Log("Audio volume updated.");
    }
}

Usage 2: Generic Method

Used for setting a variable's value and returning it as a specific type T. This method is suitable when type-specific handling or processing is required after updating the variable.

Example of Usage 2

public class GameSettings : MonoBehaviour {
    public void UpdateAndFetchAudioVolume(float newVolume) {
        NFloat volumeVar = IM.SetVariable<NFloat>("audio_volume", newVolume);
        if (volumeVar != null) {
            Debug.Log($"Audio volume updated to: {volumeVar.Value}");
        }
    }
}

Remarks

  • These methods are critical for dynamic data manipulation within games, allowing variables to be updated in response to gameplay events or user actions.
  • Proper implementation ensures that game state and logic can adapt fluidly to changing conditions, enhancing gameplay responsiveness and flexibility.
  • Particularly relevant in games where player choices or actions dynamically affect game mechanics or narrative elements.