Subscribing To A Brain

Once the Tool and Parameter attributes are set up, Subscribe and Unsubscribe to any Brain in your scene.

Create An Instance Of A Brain

A brain is a scriptable object, so create an instance of that scriptable object in your project folder.

(Hint* there can be more than one instance of a brain in any given project 😄)

Right-click in the project folder, go to Create -> Indie -> Brain

This should create the brain with a System Message, Message History, and Context.

(Hint* Add a system message to give the brain character and guidelines of how to interact with the player 🧠)

Reference A Brain

public Brain brain;

Subscribe

Subscribe this script to the brain to be analyzed for tools.

private void OnEnable()
{
    brain?.RegisterScript(GetType(), this);
}

Unsubscribe

Unsubscribe this script from the brain when the script no longer needs to be considered by the brain.

private void OnDisable()
{
    brain?.UnRegisterScript(GetType());
}

Full Example Code

using UnityEngine;
using Indie.Attributes;

public class MyGameController : MonoBehaviour
{
    public Brain brain;
    
    private void OnEnable()
    {
        brain?.RegisterScript(GetType(), this);
    }
    
    private void OnDisable()
    {
        brain?.UnRegisterScript(GetType());
    }


    [Tool("MovePlayer", "Move the player to a specified position.")]
    [Parameter("position", "Position to move the player to.")] 
    public void MovePlayer(Vector3 position)
    {
        // Method implementation
    }

    // Other methods...
}

Last updated