Skip to content

CommonNodes Module

CommonNodes

Shared Node Library

FlowBehaviourTree 시스템이 공통으로 사용하는 범용 노드 라이브러리. 산술 연산, 확률 분기, 데이터 변환을 그래프에서 직접 처리합니다.

Runtime Nodes Shared

노드 카테고리

±
MathNodes
산술·벡터·삼각함수 연산
+×÷

수치 데이터를 그래프 안에서 직접 처리하는 노드 묶음입니다. 사칙연산부터 삼각함수, 벡터 연산까지 지원하며, MathValueType으로 입력 타입을 전환할 수 있어 동일한 노드가 float, int, Vector3 등에 모두 대응합니다.

Add / Subtract 덧셈 · 뺄셈
Multiply / Divide 곱셈 · 나눗셈
Sin / Cos / Atan2 삼각함수
Dot / Cross / Normalize 벡터 연산
Clamp / Lerp / Abs 값 범위·보간·절댓값
Dynamic Math Node
다형 연산 기반 클래스
Base Class

단일 노드가 여러 데이터 타입에 동작하도록 구현하기 위한 추상 기반 클래스입니다. 커스텀 수학 노드를 만들 때 이 클래스를 상속하면 MathValueType 전환 로직을 직접 구현하지 않아도 됩니다.

DynamicBinaryMathNode 입력 2개 (A, B) 연산
UnaryMathNode 입력 1개 단항 연산
Random Nodes
확률 기반 분기·값 생성
Probability

확률 값을 기반으로 그래프 흐름을 분기하거나, 범위 내 랜덤 수치를 생성하는 노드들입니다. BehaviourTree에서 확률적 행동 선택에, Flow에서 조건부 랜덤 분기에 주로 사용됩니다.

RandomBranch 확률 가중치 분기
RandomFloat / RandomInt 범위 내 난수 생성
RandomBool 확률 기반 true/false

MathValueType

수학 노드가 다루는 데이터 타입을 런타임에 전환할 수 있게 하는 열거형입니다. 노드 인스펙터에서 타입을 선택하면 입력/출력 포트의 실제 타입이 자동으로 변경됩니다.

커스텀 수학 노드를 작성할 때 DynamicBinaryMathNode 또는 UnaryMathNode를 상속하면 이 전환 로직이 자동으로 처리됩니다.

Value C# Type 사용 예시
Float float 속도, 거리, 확률
Int int 카운터, 인덱스
Vector2 Vector2 2D 위치, UV 좌표
Vector3 Vector3 3D 위치, 방향, 회전

설계 원칙

01
노드 재사용성

복잡한 로직을 매번 코딩하는 대신, 이미 구현된 범용 노드를 조합해 그래프를 빠르게 구성할 수 있습니다. Flow와 BehaviourTree 양쪽에서 동일한 노드를 공유하므로 학습 비용이 줄어듭니다.

02
다형 타입 지원

MathValueType enum을 통해 float, int, Vector2, Vector3를 하나의 노드에서 처리합니다. 노드 수를 줄이면서도 타입 안전성을 유지하고, 에디터에서 직관적으로 타입을 전환할 수 있습니다.

03
통합 인터페이스

Flow의 DataFlowNode와 BehaviourTree 노드 모두에서 일관된 인터페이스로 동작합니다. 시스템 간 이식이 쉽고, 커스텀 노드 작성 시 기반 클래스만 변경하면 대부분의 기능이 그대로 유지됩니다.