# Node Component

Describes the node components that perform processing while the node is running.

## Basic node components

- EventComponent
  This is a node component that performs the process of notifying the node that an event has arrived.
  Used to wait for Unity messages (such as OnCollisionEnter) or input events.
- ActionComponent
  This is a node component that performs processing that can be completed in an instant.
  It is used for calling members, calculating data, etc.
- EvaluateComponent
  A node component that performs conditional judgment.
  It is used to determine state transitions and behavior tree execution.
- TaskComponent
  A node component that performs continuous processing.
  It is used for waiting for time to pass, tween processing, waiting for asynchronous processing to complete, etc.
- ServiceComponent
  A node component that performs processing that is constantly executed without returning results.
- CompositeComponent
  A component that controls the execution of child nodes of BehaviorTree.
- Decorator
  This is a node component that performs the process of determining the execution of BehaviorTree.

## Relationship with Node

While a node defines how to execute, a node component defines what processing to perform.
When a node is executed, it performs the processing defined in the various node components.
Depending on the node, it may use the processing results of the node component to execute the connected node, etc.

The relationship between each node type and the basic node component types available is shown below.

| EventComponent | ActionComponent | EvaluateComponent | TaskComponent | ServiceComponent
--- | --- | --- | --- | --- | ---
Action |  | ✅ | ✅ |  |
Task | ✅ |  | ✅ | ✅ |
State | ✅ | ✅ | ✅ | ✅ | ✅
BehaviorTree Main | ✅ | ✅ | ✅ | ✅ |
BehaviorTree Decorators1 |  |  | ✅ |  |
BehaviorTree Services |  | ✅ | ✅ | ✅ | ✅
Service |  | ✅ | ✅ | ✅ | ✅
Signal Evaluation |  |  | ✅ | ✅ |
Compute |  | ✅2 | ✅ |  |

1. You can also use Decorator. ↩︎

2. Only available if there is an output DataPort. ↩︎